Change 34382 by [EMAIL PROTECTED] on 2008/09/20 12:33:15

        Revert the code and test changes of 33727 [integration of 33726 to
        maint-5.10, which integrated 33709, 33710, 33724:
        
                Fix the line-number-in-elsif longstanding bug.
        This patch does two things :
        - newSTATEOP now nullifies the state op it
          just created if OPf_SPECIAL is passed to it
          in flags
        - the parser now inserts a nullified stateop
          in the expression block of an elsif
        
        ]. Leave perltodo as is - the TODO is done in blead, where it matters.

Affected files ...

... //depot/maint-5.8/perl/op.c#233 edit
... //depot/maint-5.8/perl/perly.c#12 edit
... //depot/maint-5.8/perl/perly.y#12 edit
... //depot/maint-5.8/perl/vms/perly_c.vms#8 edit

Differences ...

==== //depot/maint-5.8/perl/op.c#233 (text) ====
Index: perl/op.c
--- perl/op.c#232~34298~        2008-09-06 07:47:42.000000000 -0700
+++ perl/op.c   2008-09-20 05:33:15.000000000 -0700
@@ -3714,8 +3714,6 @@
        }
     }
 
-    if (flags & OPf_SPECIAL)
-       op_null((OP*)cop);
     return prepend_elem(OP_LINESEQ, (OP*)cop, o);
 }
 

==== //depot/maint-5.8/perl/perly.c#12 (text) ====
Index: perl/perly.c
--- perl/perly.c#11~33727~      2008-04-22 09:07:01.000000000 -0700
+++ perl/perly.c        2008-09-20 05:33:15.000000000 -0700
@@ -1771,7 +1771,7 @@
 case 23:
 #line 229 "perly.y"
 { PL_copline = (line_t)yyvsp[-5].ival;
-                           yyval.opval = newCONDOP(0, 
newSTATEOP(OPf_SPECIAL,NULL,yyvsp[-3].opval), scope(yyvsp[-1].opval), 
yyvsp[0].opval);
+                           yyval.opval = newCONDOP(0, yyvsp[-3].opval, 
scope(yyvsp[-1].opval), yyvsp[0].opval);
                            PL_hints |= HINT_BLOCK_SCOPE; }
 break;
 case 24:

==== //depot/maint-5.8/perl/perly.y#12 (text) ====
Index: perl/perly.y
--- perl/perly.y#11~33727~      2008-04-22 09:07:01.000000000 -0700
+++ perl/perly.y        2008-09-20 05:33:15.000000000 -0700
@@ -227,7 +227,7 @@
                        { ($2)->op_flags |= OPf_PARENS; $$ = scope($2); }
        |       ELSIF '(' mexpr ')' mblock else
                        { PL_copline = (line_t)$1;
-                           $$ = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,$3), 
scope($5), $6);
+                           $$ = newCONDOP(0, $3, scope($5), $6);
                            PL_hints |= HINT_BLOCK_SCOPE; }
        ;
 

==== //depot/maint-5.8/perl/vms/perly_c.vms#8 (text) ====
Index: perl/vms/perly_c.vms
--- perl/vms/perly_c.vms#7~33727~       2008-04-22 09:07:01.000000000 -0700
+++ perl/vms/perly_c.vms        2008-09-20 05:33:15.000000000 -0700
@@ -1781,7 +1781,7 @@
 case 23:
 #line 229 "perly.y"
 { PL_copline = (line_t)yyvsp[-5].ival;
-                           yyval.opval = newCONDOP(0, 
newSTATEOP(OPf_SPECIAL,NULL,yyvsp[-3].opval), scope(yyvsp[-1].opval), 
yyvsp[0].opval);
+                           yyval.opval = newCONDOP(0, yyvsp[-3].opval, 
scope(yyvsp[-1].opval), yyvsp[0].opval);
                            PL_hints |= HINT_BLOCK_SCOPE; }
 break;
 case 24:
End of Patch.

Reply via email to