This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Consolidate uses of PERL_SMALL_MACRO_BUFFER
authorKarl Williamson <khw@cpan.org>
Fri, 1 Nov 2019 00:59:17 +0000 (18:59 -0600)
committerKarl Williamson <khw@cpan.org>
Fri, 1 Nov 2019 01:06:02 +0000 (19:06 -0600)
At the moment the _ASSERT_() is the one which has been showing large
expansions.  Change so it doesn't do anything if PERL_SMALL_MACRO_BUFFER
is defined.  That means various other calls that use
PERL_SMALL_MACRO_BUFFER can be simplified to not use it.

handy.h
perl.h
utf8.h

diff --git a/handy.h b/handy.h
index c5ad713..eb20c21 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -283,7 +283,8 @@ We also use empty definition under Coverity since the __ASSERT__
 checks often check for things that Really Cannot Happen, and Coverity
 detects that and gets all excited. */
 
-#if defined(DEBUGGING) && !defined(__COVERITY__)
+#if   defined(DEBUGGING) && !defined(__COVERITY__)                        \
+ && ! defined(PERL_SMALL_MACRO_BUFFER)
 #   define __ASSERT_(statement)  assert(statement),
 #else
 #   define __ASSERT_(statement)
diff --git a/perl.h b/perl.h
index c7d9354..bd2b623 100644 (file)
--- a/perl.h
+++ b/perl.h
 #  endif
 #endif
 
+#if defined(_MSC_VER)
+/* XXX older MSVC versions have a smallish macro buffer */
+#define PERL_SMALL_MACRO_BUFFER
+#endif
+
 /* on gcc (and clang), specify that a warning should be temporarily
  * ignored; e.g.
  *
diff --git a/utf8.h b/utf8.h
index ded581a..7ef1102 100644 (file)
--- a/utf8.h
+++ b/utf8.h
@@ -144,11 +144,6 @@ EXTCONST unsigned char PL_utf8skip[];
 
 END_EXTERN_C
 
-#if defined(_MSC_VER) && _MSC_VER < 1400
-/* older MSVC versions have a smallish macro buffer */
-#define PERL_SMALL_MACRO_BUFFER
-#endif
-
 /*
 
 =for apidoc Am|U8|NATIVE_TO_LATIN1|U8 ch
@@ -194,13 +189,8 @@ adding no time nor space requirements to the implementation.
 =cut
 */
 
-#ifdef PERL_SMALL_MACRO_BUFFER
-#  define NATIVE_TO_LATIN1(ch)     ((U8)(ch))
-#  define LATIN1_TO_NATIVE(ch)     ((U8)(ch))
-#else
-#  define NATIVE_TO_LATIN1(ch)     (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) ((ch) | 0)))
-#  define LATIN1_TO_NATIVE(ch)     (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) ((ch) | 0)))
-#endif
+#define NATIVE_TO_LATIN1(ch)     (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) ((ch) | 0)))
+#define LATIN1_TO_NATIVE(ch)     (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) ((ch) | 0)))
 
 /* I8 is an intermediate version of UTF-8 used only in UTF-EBCDIC.  We thus
  * consider it to be identical to UTF-8 on ASCII platforms.  Strictly speaking
@@ -208,13 +198,8 @@ adding no time nor space requirements to the implementation.
  * because they are 8-bit encodings that serve the same purpose in Perl, and
  * rarely do we need to distinguish them.  The term "NATIVE_UTF8" applies to
  * whichever one is applicable on the current platform */
-#ifdef PERL_SMALL_MACRO_BUFFER
-#define NATIVE_UTF8_TO_I8(ch) ((U8) (ch))
-#define I8_TO_NATIVE_UTF8(ch) ((U8) (ch))
-#else
 #define NATIVE_UTF8_TO_I8(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) ((ch) | 0)))
 #define I8_TO_NATIVE_UTF8(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) ((ch) | 0)))
-#endif
 
 #define UNI_TO_NATIVE(ch)        ((UV) ((ch) | 0))
 #define NATIVE_TO_UNI(ch)        ((UV) ((ch) | 0))