--- regexec.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/regexec.c b/regexec.c index 881f8c2..867965a 100644 --- a/regexec.c +++ b/regexec.c @@ -3975,7 +3975,10 @@ S_regmatch(pTHX_ regmatch_info *reginfo, regnode *prog) COP * const ocurcop = PL_curcop; PAD *old_comppad; char *saved_regeol = PL_regeol; - + struct re_save_state saved_state; + + Copy(&PL_reg_state, &saved_state, 1, struct re_save_state); + n = ARG(scan); PL_op = (OP_4tree*)rexi->data->data[n]; DEBUG_STATE_r( PerlIO_printf(Perl_debug_log, @@ -3997,6 +4000,8 @@ S_regmatch(pTHX_ regmatch_info *reginfo, regnode *prog) PUTBACK; } + Copy(&saved_state, &PL_reg_state, 1, struct re_save_state); + PL_op = oop; PAD_RESTORE_LOCAL(old_comppad); PL_curcop = ocurcop; -- 1.7.1Thread Next