Change 27717 by [EMAIL PROTECTED] on 2006/04/05 03:17:50
(??{...}) didn't always restore PL_reg_re.
Also trie debugging output was using a var that was no longer
valid
Affected files ...
... //depot/perl/regexec.c#396 edit
Differences ...
==== //depot/perl/regexec.c#396 (text) ====
Index: perl/regexec.c
--- perl/regexec.c#395~27716~ 2006-04-04 18:50:33.000000000 -0700
+++ perl/regexec.c 2006-04-04 20:17:50.000000000 -0700
@@ -2805,6 +2805,8 @@
best = cur;
}
DEBUG_EXECUTE_r({
+ reg_trie_data * const trie = (reg_trie_data*)
+ PL_reg_re->data->data[ARG(scan)];
SV ** const tmp = av_fetch( trie->words,
st->u.trie.accept_buff[ best ].wordnum - 1, 0 );
PerlIO_printf( Perl_debug_log, "%*s %strying
alternation #%d <%s> at 0x%p%s\n",
REPORT_CODE_OFF+PL_regindent*2, "",
PL_colors[4],
@@ -3279,10 +3281,10 @@
PL_op = oop;
PAD_RESTORE_LOCAL(old_comppad);
PL_curcop = ocurcop;
+ PL_reg_re = oreg;
if (!st->logical) {
/* /(?{...})/ */
sv_setsv(save_scalar(PL_replgv), ret);
- PL_reg_re = oreg;
break;
}
}
End of Patch.