sv_setsv(tmpstr,relem[1]); /* value */
relem[1] = tmpstr;
if (avhv_store_ent(ary,relem[0],tmpstr,0))
- SvREFCNT_inc(tmpstr);
+ (void)SvREFCNT_inc(tmpstr);
if (SvMAGICAL(ary) != 0 && SvSMAGICAL(tmpstr))
mg_set(tmpstr);
relem += 2;
/* pseudohash */
tmpstr = sv_newmortal();
if (avhv_store_ent((AV*)hash,*relem,tmpstr,0))
- SvREFCNT_inc(tmpstr);
+ (void)SvREFCNT_inc(tmpstr);
if (SvMAGICAL(hash) && SvSMAGICAL(tmpstr))
mg_set(tmpstr);
}
&& !PL_sawampersand
&& ((rx->reganch & ROPT_NOSCAN)
|| !((rx->reganch & RE_INTUIT_TAIL)
- && (r_flags & REXEC_SCREAM))))
+ && (r_flags & REXEC_SCREAM)))
+ && !SvROK(TARG)) /* Cannot trust since INTUIT cannot guess ^ */
goto yup;
}
if (CALLREGEXEC(aTHX_ rx, s, strend, truebase, minmatch, TARG, NULL, r_flags))
len = rx->endp[i] - rx->startp[i];
s = rx->startp[i] + truebase;
sv_setpvn(*SP, s, len);
+ if ((pm->op_pmdynflags & PMdf_UTF8) && !IN_BYTE) {
+ SvUTF8_on(*SP);
+ sv_utf8_downgrade(*SP, TRUE);
+ }
}
}
if (global) {