From: Nicholas Clark Date: Fri, 17 Mar 2006 16:46:44 +0000 (+0000) Subject: Restore a bit of change 27533 that change 27534 inadvertently unwound. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=d300d9fa075a7f8773308c940f2711226efe4f42;p=p5sagit%2Fp5-mst-13.2.git Restore a bit of change 27533 that change 27534 inadvertently unwound. p4raw-id: //depot/perl@27535 --- diff --git a/regexec.c b/regexec.c index 2b7fdfa..c79bee0 100644 --- a/regexec.c +++ b/regexec.c @@ -2130,9 +2130,12 @@ S_regtry(pTHX_ regexp *prog, char *startpos) if (!(SvTYPE(PL_reg_sv) >= SVt_PVMG && SvMAGIC(PL_reg_sv) && (mg = mg_find(PL_reg_sv, PERL_MAGIC_regex_global)))) { /* prepare for quick setting of pos */ - sv_magic(PL_reg_sv, (SV*)0, - PERL_MAGIC_regex_global, NULL, 0); - mg = mg_find(PL_reg_sv, PERL_MAGIC_regex_global); +#ifdef PERL_OLD_COPY_ON_WRITE + if (SvIsCOW(sv)) + sv_force_normal_flags(sv, 0); +#endif + mg = sv_magicext(PL_reg_sv, (SV*)0, PERL_MAGIC_regex_global, + &PL_vtbl_mglob, NULL, 0); mg->mg_len = -1; } PL_reg_magic = mg;