diff options
-rw-r--r-- | pp_ctl.c | 7 | ||||
-rw-r--r-- | regcomp.c | 4 |
2 files changed, 5 insertions, 6 deletions
@@ -131,10 +131,9 @@ PP(pp_regcomp) if (!re || !re->precomp || re->prelen != (I32)len || memNE(re->precomp, t, len)) { - regexp_engine * eng = NULL; - + const regexp_engine *eng = re ? re->engine : NULL; + if (re) { - eng = re->engine; ReREFCNT_dec(re); PM_SETRE(pm, NULL); /* crucial if regcomp aborts */ } else if (PL_curcop->cop_hints_hash) { @@ -143,7 +142,7 @@ PP(pp_regcomp) if (ptr && SvIOK(ptr) && SvIV(ptr)) eng = INT2PTR(regexp_engine*,SvIV(ptr)); } - + if (PL_op->op_flags & OPf_SPECIAL) PL_reginterp_cnt = I32_MAX; /* Mark as safe. */ @@ -907,8 +907,8 @@ S_dump_trie_interim_list(pTHX_ const struct _reg_trie_data *trie, U32 next_alloc (UV)TRIE_LIST_ITEM(state,charid).newstate ); if (!(charid % 10)) - PerlIO_printf( Perl_debug_log, "\n%*s| ", - (depth * 2) + 14,""); + PerlIO_printf(Perl_debug_log, "\n%*s| ", + (int)((depth * 2) + 14), ""); } } PerlIO_printf( Perl_debug_log, "\n"); |