diff options
author | Dave Mitchell <davem@fdisolutions.com> | 2004-03-06 15:25:32 +0000 |
---|---|---|
committer | Dave Mitchell <davem@fdisolutions.com> | 2004-03-06 15:25:32 +0000 |
commit | 11e77146d62cd4d19d8f5a4858c3f63305da9e4f (patch) | |
tree | a114b64e0f4f4d7e56a2c6c5b4ffff6e085206a3 | |
parent | 221e20899fabd0af8f8fae9b8c89101305898139 (diff) | |
download | perl-11e77146d62cd4d19d8f5a4858c3f63305da9e4f.tar.gz |
fix coredump in /(?{sub{}})/
p4raw-id: //depot/perl@22445
-rw-r--r-- | pad.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -257,8 +257,11 @@ Perl_pad_undef(pTHX_ CV* cv) CV *innercv = (CV*)curpad[ix]; namepad[ix] = Nullsv; SvREFCNT_dec(namesv); - curpad[ix] = Nullsv; - SvREFCNT_dec(innercv); + + if (SvREFCNT(comppad) < 2) { /* allow for /(?{ sub{} })/ */ + curpad[ix] = Nullsv; + SvREFCNT_dec(innercv); + } if (SvREFCNT(innercv) /* in use, not just a prototype */ && CvOUTSIDE(innercv) == cv) { |