Re-implement the macros SAVECOMPPAD(), SAVECOMPILEWARNINGS(),
Nicholas Clark [Sun, 30 Nov 2008 23:27:57 +0000 (23:27 +0000)]
SAVEPARSER() in terms of save_pushptr(). This shinks the exectuable
by about 4K. Maybe some of the other scope.h macros should become
functions.

p4raw-id: //depot/perl@34958

scope.h

diff --git a/scope.h b/scope.h
index e910388..6eddb19 100644 (file)
--- a/scope.h
+++ b/scope.h
@@ -174,12 +174,7 @@ Closing bracket on a callback.  See C<ENTER> and L<perlcall>.
        SSPUSHINT(SAVEt_HINTS);                         \
     } STMT_END
 
-#define SAVECOMPPAD() \
-    STMT_START {                                               \
-       SSCHECK(2);                                             \
-       SSPUSHPTR(MUTABLE_SV(PL_comppad));                      \
-       SSPUSHINT(SAVEt_COMPPAD);                               \
-    } STMT_END
+#define SAVECOMPPAD() save_pushptr(MUTABLE_SV(PL_comppad), SAVEt_COMPPAD)
 
 #define SAVESWITCHSTACK(f,t) \
     STMT_START {                                       \
@@ -204,12 +199,7 @@ Closing bracket on a callback.  See C<ENTER> and L<perlcall>.
    could have done savefreesharedpvREF, but this way actually seems cleaner,
    as it simplifies the code that does the saves, and reduces the load on the
    save stack.  */
-#define SAVECOMPILEWARNINGS() \
-    STMT_START {                                       \
-       SSCHECK(2);                                     \
-       SSPUSHPTR(PL_compiling.cop_warnings);           \
-       SSPUSHINT(SAVEt_COMPILE_WARNINGS);              \
-    } STMT_END
+#define SAVECOMPILEWARNINGS() save_pushptr(PL_compiling.cop_warnings, SAVEt_COMPILE_WARNINGS)
 
 #define SAVESTACK_CXPOS() \
     STMT_START {                                  \
@@ -219,12 +209,7 @@ Closing bracket on a callback.  See C<ENTER> and L<perlcall>.
         SSPUSHINT(SAVEt_STACK_CXPOS);             \
     } STMT_END
 
-#define SAVEPARSER(p) \
-    STMT_START {                                  \
-        SSCHECK(2);                               \
-        SSPUSHPTR(p);                            \
-        SSPUSHINT(SAVEt_PARSER);                 \
-    } STMT_END
+#define SAVEPARSER(p) save_pushptr((p), SAVEt_PARSER)
 
 #ifdef USE_ITHREADS
 #  define SAVECOPSTASH(c)      SAVEPPTR(CopSTASHPV(c))