#define SAVEOP() save_op()
-#define SAVEHINTS() \
- STMT_START { \
- SSCHECK(4); \
- if (PL_hints & HINT_LOCALIZE_HH) { \
- SSPUSHPTR(GvHV(PL_hintgv)); \
- GvHV(PL_hintgv) = Perl_hv_copy_hints_hv(aTHX_ GvHV(PL_hintgv)); \
- } \
- if (PL_compiling.cop_hints_hash) { \
- HINTS_REFCNT_LOCK; \
- PL_compiling.cop_hints_hash->refcounted_he_refcnt++; \
- HINTS_REFCNT_UNLOCK; \
- } \
- SSPUSHPTR(PL_compiling.cop_hints_hash); \
- SSPUSHINT(PL_hints); \
- SSPUSHINT(SAVEt_HINTS); \
- } STMT_END
+#define SAVEHINTS() save_hints()
#define SAVECOMPPAD() save_pushptr(MUTABLE_SV(PL_comppad), SAVEt_COMPPAD)
#define SAVESWITCHSTACK(f,t) \
STMT_START { \
- SSCHECK(3); \
- SSPUSHPTR(MUTABLE_SV(f)); \
- SSPUSHPTR(MUTABLE_SV(t)); \
- SSPUSHINT(SAVEt_SAVESWITCHSTACK); \
+ save_pushptrptr(MUTABLE_SV(f), MUTABLE_SV(t), SAVEt_SAVESWITCHSTACK); \
SWITCHSTACK((f),(t)); \
PL_curstackinfo->si_stack = (t); \
} STMT_END
-#define SAVECOPARYBASE(c) \
- STMT_START { \
- SSCHECK(3); \
- SSPUSHINT(CopARYBASE_get(c)); \
- SSPUSHPTR(c); \
- SSPUSHINT(SAVEt_COP_ARYBASE); \
- } STMT_END
+#define SAVECOPARYBASE(c) save_pushi32ptr(CopARYBASE_get(c), c, SAVEt_COP_ARYBASE);
/* Need to do the cop warnings like this, rather than a "SAVEFREESHAREDPV",
because realloc() means that the value can actually change. Possibly