diff options
author | Father Chrysostomos <sprout@cpan.org> | 2013-07-24 08:39:01 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2013-07-25 23:48:03 -0700 |
commit | 0ad6fa3530955d1b19193ff491530a86d99191a1 (patch) | |
tree | 9798985f21cf74cc19446af5d6705202246b406e /pad.c | |
parent | 3150c6161e300b1e325939ff22b76f91a8307cf5 (diff) | |
download | perl-0ad6fa3530955d1b19193ff491530a86d99191a1.tar.gz |
Stop op freeing from interfering with sub(){42} mutability
The problem is that when an OP_CONST is freed, it calls pad_swipe,
which clears the PADTMP flag when removing the SV from the pad. Since
PADTMP no longer necessarily means ‘in a pad’, we shouldn’t turn
this flag off.
Diffstat (limited to 'pad.c')
-rw-r--r-- | pad.c | 2 |
1 files changed, 0 insertions, 2 deletions
@@ -1638,8 +1638,6 @@ Perl_pad_swipe(pTHX_ PADOFFSET po, bool refadjust) "Pad 0x%"UVxf"[0x%"UVxf"] swipe: %ld\n", PTR2UV(PL_comppad), PTR2UV(PL_curpad), (long)po)); - if (PL_curpad[po] && !SvPADMY(PL_curpad[po])) - SvPADTMP_off(PL_curpad[po]); if (refadjust) SvREFCNT_dec(PL_curpad[po]); |