diff options
author | Artur Bergman <sky@nanisky.com> | 2001-08-30 08:22:31 +0000 |
---|---|---|
committer | Artur Bergman <sky@nanisky.com> | 2001-08-30 08:22:31 +0000 |
commit | 1cc8b4c566f7901a54e4b576f09608beb4c81f86 (patch) | |
tree | 09cb12649a6b54703bf0472745a36955c2fccf7d /op.c | |
parent | df8513ebccb346c715b201053776d8f657fee6c9 (diff) | |
download | perl-1cc8b4c566f7901a54e4b576f09608beb4c81f86.tar.gz |
Introduces SvREPADTMP(sv) that marks a repad SvIV as a offset
on the pad. Fixes coredumps in cleanups introduced by
Change 11755
p4raw-id: //depot/perl@11790
Diffstat (limited to 'op.c')
-rw-r--r-- | op.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -864,6 +864,7 @@ clear_pmop: #ifdef USE_ITHREADS if(PL_regex_pad) { /* We could be in destruction */ av_push((AV*) PL_regex_pad[0],(SV*) PL_regex_pad[(cPMOPo)->op_pmoffset]); + SvREPADTMP_on(PL_regex_pad[(cPMOPo)->op_pmoffset]); PM_SETRE(cPMOPo, (cPMOPo)->op_pmoffset); } #endif @@ -2975,6 +2976,7 @@ Perl_newPMOP(pTHX_ I32 type, I32 flags) if(av_len((AV*) PL_regex_pad[0]) > -1) { repointer = av_pop((AV*)PL_regex_pad[0]); pmop->op_pmoffset = SvIV(repointer); + SvREPADTMP_off(repointer); sv_setiv(repointer,0); } else { repointer = newSViv(0); |