diff options
Diffstat (limited to 'gnu/usr.bin/perl/scope.h')
-rw-r--r-- | gnu/usr.bin/perl/scope.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gnu/usr.bin/perl/scope.h b/gnu/usr.bin/perl/scope.h index 612de4aa14c..afe4de9a3a0 100644 --- a/gnu/usr.bin/perl/scope.h +++ b/gnu/usr.bin/perl/scope.h @@ -47,6 +47,7 @@ #define SAVEt_MORTALIZESV 36 #define SAVEt_SHARED_PVREF 37 #define SAVEt_BOOL 38 +#define SAVEt_SAVESWITCHSTACK 40 #ifndef SCOPE_SAVES_SIGNAL_MASK #define SCOPE_SAVES_SIGNAL_MASK 0 @@ -167,6 +168,16 @@ Closing bracket on a callback. See C<ENTER> and L<perlcall>. SSPUSHINT(SAVEt_COMPPAD); \ } STMT_END +#define SAVESWITCHSTACK(f,t) \ + STMT_START { \ + SSCHECK(3); \ + SSPUSHPTR((SV*)(f)); \ + SSPUSHPTR((SV*)(t)); \ + SSPUSHINT(SAVEt_SAVESWITCHSTACK); \ + SWITCHSTACK((f),(t)); \ + PL_curstackinfo->si_stack = (t); \ + } STMT_END + #ifdef USE_ITHREADS # define SAVECOPSTASH(c) SAVEPPTR(CopSTASHPV(c)) # define SAVECOPSTASH_FREE(c) SAVESHAREDPV(CopSTASHPV(c)) |