diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 2000-11-25 20:52:17 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 2000-11-25 20:52:17 +0000 |
commit | c3564e5c35b594706ecb001261b86a47fb837059 (patch) | |
tree | 924db2bde875fbdf39afd6a16feea1b1c79b944a /scope.h | |
parent | cf829ab07ccc67cf02ca41d6f870136b64d83833 (diff) | |
download | perl-c3564e5c35b594706ecb001261b86a47fb837059.tar.gz |
C<foreach my $x ...> in pseudo-fork()ed process may diddle
parent's memory; fix it by keeping track of the actual pad
offset rather than a raw pointer (this change is probably also
relevant to non-ithreads case to avoid fallout from reallocs of
the pad array, but is currently only enabled for the ithreads
case in the interests of minimal disruption to existing "well
tested" code)
p4raw-id: //depot/perl@7858
Diffstat (limited to 'scope.h')
-rw-r--r-- | scope.h | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -33,6 +33,7 @@ #define SAVEt_I8 32 #define SAVEt_COMPPAD 33 #define SAVEt_GENERIC_PVREF 34 +#define SAVEt_PADSV 35 #define SSCHECK(need) if (PL_savestack_ix + need > PL_savestack_max) savestack_grow() #define SSPUSHINT(i) (PL_savestack[PL_savestack_ix++].any_i32 = (I32)(i)) @@ -101,6 +102,7 @@ Closing bracket on a callback. See C<ENTER> and L<perlcall>. #define SAVESPTR(s) save_sptr((SV**)&(s)) #define SAVEPPTR(s) save_pptr(SOFT_CAST(char**)&(s)) #define SAVEVPTR(s) save_vptr((void*)&(s)) +#define SAVEPADSV(s) save_padsv(s) #define SAVEFREESV(s) save_freesv((SV*)(s)) #define SAVEFREEOP(o) save_freeop(SOFT_CAST(OP*)(o)) #define SAVEFREEPV(p) save_freepv(SOFT_CAST(char*)(p)) |