X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pp_hot.c;h=5bc38be8ac2752f7715b822c31d0f99923cf5155;hb=bdd9a1b1ec56a0b6b7d8b1b363138a8fbd3040e3;hp=efdb8a46e79e9b09677410d12497f342a16e6975;hpb=59cd0e26eb6c10499b25d783562357dd68cc16f2;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pp_hot.c b/pp_hot.c index efdb8a4..5bc38be 100644 --- a/pp_hot.c +++ b/pp_hot.c @@ -43,7 +43,7 @@ PP(pp_const) /* This is a const op added to hold the hints hash for pp_entereval. The hash can be modified by the code being eval'ed, so we return a copy instead. */ - XPUSHs(sv_2mortal((SV*)Perl_hv_copy_hints_hv(aTHX_ (HV*)cSVOP_sv))); + mXPUSHs((SV*)Perl_hv_copy_hints_hv(aTHX_ (HV*)cSVOP_sv)); else /* Normal const. */ XPUSHs(cSVOP_sv); @@ -1479,16 +1479,17 @@ yup: /* Confirmed by INTUIT */ (int) SvTYPE(TARG), (void*)truebase, (void*)t, (int)(t-truebase)); } - rx->saved_copy = sv_setsv_cow(rx->saved_copy, TARG); - RX_SUBBEG(rx) = (char *) SvPVX_const(rx->saved_copy) + (t - truebase); - assert (SvPOKp(rx->saved_copy)); + RX_SAVED_COPY(rx) = sv_setsv_cow(RX_SAVED_COPY(rx), TARG); + RX_SUBBEG(rx) + = (char *) SvPVX_const(RX_SAVED_COPY(rx)) + (t - truebase); + assert (SvPOKp(RX_SAVED_COPY(rx))); } else #endif { RX_SUBBEG(rx) = savepvn(t, strend - t); #ifdef PERL_OLD_COPY_ON_WRITE - rx->saved_copy = NULL; + RX_SAVED_COPY(rx) = NULL; #endif } RX_SUBLEN(rx) = strend - t; @@ -2251,7 +2252,7 @@ PP(pp_subst) } TAINT_IF(rxtainted & 1); SPAGAIN; - PUSHs(sv_2mortal(newSViv((I32)iters))); + mPUSHi((I32)iters); } (void)SvPOK_only_UTF8(TARG); TAINT_IF(rxtainted); @@ -2337,7 +2338,7 @@ PP(pp_subst) TAINT_IF(rxtainted & 1); SPAGAIN; - PUSHs(sv_2mortal(newSViv((I32)iters))); + mPUSHi((I32)iters); (void)SvPOK_only(TARG); if (doutf8)