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.

Reply via email to