From: Jarkko Hietaniemi Date: Wed, 22 Feb 2006 20:16:00 +0000 (+0000) Subject: Turn on match string copying when /e flag is set on a substitution. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=0b78c20afd064db39b35d637bceaf4533bc88c26;p=p5sagit%2Fp5-mst-13.2.git Turn on match string copying when /e flag is set on a substitution. Subject: [PATCH] dodge a valgrind error (for maint or blead) Message-ID: <43FCB896.7060106@gmail.com> p4raw-id: //depot/perl@27270 --- diff --git a/pp_hot.c b/pp_hot.c index e352763..8d590ca 100644 --- a/pp_hot.c +++ b/pp_hot.c @@ -1335,7 +1335,7 @@ PP(pp_match) } } if ((!global && rx->nparens) - || SvTEMP(TARG) || PL_sawampersand) + || SvTEMP(TARG) || PL_sawampersand || (pm->op_pmflags & PMf_EVAL)) r_flags |= REXEC_COPY_STR; if (SvSCREAM(TARG)) r_flags |= REXEC_SCREAM; @@ -2101,7 +2101,8 @@ PP(pp_subst) pm = PL_curpm; rx = PM_GETRE(pm); } - r_flags = (rx->nparens || SvTEMP(TARG) || PL_sawampersand) + r_flags = (rx->nparens || SvTEMP(TARG) || PL_sawampersand + || (pm->op_pmflags & PMf_EVAL)) ? REXEC_COPY_STR : 0; if (SvSCREAM(TARG)) r_flags |= REXEC_SCREAM;