summaryrefslogtreecommitdiff
path: root/scope.h
diff options
context:
space:
mode:
Diffstat (limited to 'scope.h')
-rw-r--r--scope.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/scope.h b/scope.h
index e5160e1b36..5efb8fca53 100644
--- a/scope.h
+++ b/scope.h
@@ -51,6 +51,8 @@
#define SAVEt_SAVESWITCHSTACK 40
#define SAVEt_COP_ARYBASE 41
#define SAVEt_RE_STATE 42
+#define SAVEt_FREESHAREDPV 43
+#define SAVEt_COP_WARNINGS 44
#ifndef SCOPE_SAVES_SIGNAL_MASK
#define SCOPE_SAVES_SIGNAL_MASK 0
@@ -192,6 +194,25 @@ Closing bracket on a callback. See C<ENTER> and L<perlcall>.
SSPUSHINT(SAVEt_COP_ARYBASE); \
} STMT_END
+#define SAVEFREESHAREDPV(pv) \
+ STMT_START { \
+ SSCHECK(2); \
+ SSPUSHPTR(pv); \
+ SSPUSHINT(SAVEt_FREESHAREDPV); \
+ } STMT_END
+
+/* Need to do the cop warnings like this, rather than SAVEFREESHAREDPV,
+ because realloc() means that the value can actually change. Possibly
+ 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 SAVECOPWARNINGS(c) \
+ STMT_START { \
+ SSCHECK(3); \
+ SSPUSHPTR((c)->cop_warnings); \
+ SSPUSHPTR(c); \
+ SSPUSHINT(SAVEt_COP_WARNINGS); \
+ } STMT_END
#ifdef USE_ITHREADS
# define SAVECOPSTASH(c) SAVEPPTR(CopSTASHPV(c))