#define PL_regdummy (vTHX->Iregdummy)
#define PL_regex_pad (vTHX->Iregex_pad)
#define PL_regex_padav (vTHX->Iregex_padav)
-#define PL_reginterp_cnt (vTHX->Ireginterp_cnt)
#define PL_registered_mros (vTHX->Iregistered_mros)
#define PL_regmatch_slab (vTHX->Iregmatch_slab)
#define PL_regmatch_state (vTHX->Iregmatch_state)
PERLVAR(I, unsafe, bool)
PERLVAR(I, exit_flags, U8) /* was exit() unexpected, etc. */
-PERLVARI(I, reginterp_cnt, I32, 0) /* Whether "Regexp" was interpolated. */
-
PERLVAR(I, inplace, char *)
PERLVAR(I, e_script, SV *)
PP(pp_regcreset)
{
dVAR;
- /* XXXX Should store the old value to allow for tie/overload - and
- restore in regcomp, where marked with XXXX. */
- PL_reginterp_cnt = 0;
TAINT_NOT;
return NORMAL;
}
assert (re != (REGEXP*) &PL_sv_undef);
eng = re ? RX_ENGINE(re) : current_re_engine();
- if (PL_op->op_flags & OPf_SPECIAL)
- PL_reginterp_cnt = (I32_MAX>>1); /* Mark as safe. */
-
new_re = (eng->op_comp
? eng->op_comp
: &Perl_re_op_compile
PM_SETRE(pm, new_re);
}
- PL_reginterp_cnt = 0; /* XXXX Be extra paranoid - needed
- inside tie/overload accessors. */
#ifndef INCOMPLETE_TAINTS
if (PL_tainting && PL_tainted) {
SvTAINTED_on((SV*)new_re);
}
else {
- if (SvROK(msv) && SvTYPE(SvRV(msv)) == SVt_REGEXP) {
+ if (SvROK(msv) && SvTYPE(SvRV(msv)) == SVt_REGEXP)
msv = SvRV(msv);
- PL_reginterp_cnt +=
- RX_SEEN_EVALS((REGEXP *)MUTABLE_PTR(msv));
- }
sv_catsv_nomg(pat, msv);
if (code)
pRExC_state->code_blocks[n-1].end = SvCUR(pat)-1;
|| amagic_is_enabled(string_amg)
)) {
REGEXP * const re = (REGEXP *)MUTABLE_PTR(referent);
- I32 seen_evals = 0;
assert(re);
else
SvUTF8_off(sv);
- if ((seen_evals = RX_SEEN_EVALS(re)))
- PL_reginterp_cnt += seen_evals;
-
if (lp)
*lp = RX_WRAPLEN(re);
/* RE engine related */
Zero(&PL_reg_state, 1, struct re_save_state);
- PL_reginterp_cnt = 0;
PL_regmatch_slab = NULL;
PL_sub_generation = proto_perl->Isub_generation;