Change 18411 by [EMAIL PROTECTED] on 2003/01/03 11:11:09
Subject: Re: [perl #19061] 'goto' confuses 'redo'
From: Stephen McCamant <[EMAIL PROTECTED]>
Date: Sun, 22 Dec 2002 22:09:51 -0500
Message-ID: <[EMAIL PROTECTED]>
Affected files ...
... //depot/perl/pp_ctl.c#332 edit
Differences ...
==== //depot/perl/pp_ctl.c#332 (text) ====
Index: perl/pp_ctl.c
--- perl/pp_ctl.c#331~18307~ Mon Dec 16 14:01:14 2002
+++ perl/pp_ctl.c Fri Jan 3 03:11:09 2003
@@ -2048,11 +2048,15 @@
for (kid = cUNOPo->op_first; kid; kid = kid->op_sibling) {
if (kid == PL_lastgotoprobe)
continue;
- if ((kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE) &&
- (ops == opstack ||
- (ops[-1]->op_type != OP_NEXTSTATE &&
- ops[-1]->op_type != OP_DBSTATE)))
- *ops++ = kid;
+ if (kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE) {
+ if (ops == opstack)
+ *ops++ = kid;
+ else if (ops[-1]->op_type == OP_NEXTSTATE ||
+ ops[-1]->op_type == OP_DBSTATE)
+ ops[-1] = kid;
+ else
+ *ops++ = kid;
+ }
if ((o = dofindlabel(kid, label, ops, oplimit)))
return o;
}
End of Patch.