diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 2000-06-30 04:37:33 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 2000-06-30 04:37:33 +0000 |
commit | 7032098e3624717c340da3e1b7cc1d22959257c0 (patch) | |
tree | 04ad10e123399e2ce2574436560a9e2a3d96c671 /cop.h | |
parent | 0cacb523b3d9abfe9ac5761f31a2c11458e98c49 (diff) | |
download | perl-7032098e3624717c340da3e1b7cc1d22959257c0.tar.gz |
dounwind() may cause POPSUB() to diddle the wrong PL_curpad
when @_ is modified, causing coredumps
p4raw-id: //depot/perl@6291
Diffstat (limited to 'cop.h')
-rw-r--r-- | cop.h | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -80,6 +80,7 @@ struct block_sub { U16 olddepth; U8 hasargs; U8 lval; /* XXX merge lval and hasargs? */ + SV ** oldcurpad; }; #define PUSHSUB(cx) \ @@ -126,7 +127,7 @@ struct block_sub { cx->blk_sub.argarray = newAV(); \ av_extend(cx->blk_sub.argarray, fill); \ AvFLAGS(cx->blk_sub.argarray) = AVf_REIFY; \ - PL_curpad[0] = (SV*)cx->blk_sub.argarray; \ + cx->blk_sub.oldcurpad[0] = (SV*)cx->blk_sub.argarray; \ } \ else { \ CLEAR_ARGARRAY(cx->blk_sub.argarray); \ |