From: Artur Bergman Date: Mon, 17 Sep 2001 12:44:36 +0000 (+0000) Subject: Fixes coredump introduced by 11755 and 11790. Thanks to Doug for X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=0f95fc414bfdcbc7a8270650d2028e5494fce075;p=p5sagit%2Fp5-mst-13.2.git Fixes coredump introduced by 11755 and 11790. Thanks to Doug for finding it. p4raw-id: //depot/perl@12050 --- diff --git a/sv.c b/sv.c index 48d5422..3457353 100644 --- a/sv.c +++ b/sv.c @@ -9808,12 +9808,18 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags, { I32 len = av_len((AV*)proto_perl->Iregex_padav); SV** regexen = AvARRAY((AV*)proto_perl->Iregex_padav); - for(i = 0; i <= len; i++) { - av_push(PL_regex_padav, - SvREFCNT_inc( + av_push(PL_regex_padav, + sv_dup_inc(regexen[0],param)); + for(i = 1; i <= len; i++) { + if(SvREPADTMP(regexen[i])) { + av_push(PL_regex_padav, sv_dup_inc(regexen[i], param)); + } else { + av_push(PL_regex_padav, + SvREFCNT_inc( newSViv(PTR2IV(re_dup(INT2PTR(REGEXP *, SvIVX(regexen[i])), param))) - )); + )); + } } } PL_regex_pad = AvARRAY(PL_regex_padav);