From: Vishal Bhatia Date: Tue, 23 Mar 1999 16:21:43 +0000 (-0800) Subject: applied needful parts of suggested patch X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=0bfcb1eb8398349704a580675d80485efbfbefce;p=p5sagit%2Fp5-mst-13.2.git applied needful parts of suggested patch Message-ID: Subject: [PATCH 5.005_56] pp_formline correction p4raw-id: //depot/perl@3168 --- diff --git a/ext/B/B/Bblock.pm b/ext/B/B/Bblock.pm index a54431b..cb007ff 100644 --- a/ext/B/B/Bblock.pm +++ b/ext/B/B/Bblock.pm @@ -97,6 +97,12 @@ sub B::CONDOP::mark_if_leader { mark_leader($op->false); } +sub B::LISTOP::mark_if_leader { + my $op = shift; + mark_leader($op->first); + mark_leader($op->next); +} + sub B::PMOP::mark_if_leader { my $op = shift; if ($op->ppaddr ne "pp_pushre") { diff --git a/ext/B/B/CC.pm b/ext/B/B/CC.pm index f6f4f0f..2430c51 100644 --- a/ext/B/B/CC.pm +++ b/ext/B/B/CC.pm @@ -877,7 +877,7 @@ sub pp_sassign { } elsif ($type == T_DOUBLE) { $dst->set_double("SvNV(sv)"); } else { - runtime("SvSetSV($dst->{sv}, sv);"); + runtime("SvSetMagicSV($dst->{sv}, sv);"); $dst->invalidate; } } @@ -946,14 +946,13 @@ sub pp_entersub { sub pp_formline { my $op = shift; my $ppname = $op->ppaddr; - write_label($op); write_back_lexicals() unless $skip_lexicals{$ppname}; write_back_stack() unless $skip_stack{$ppname}; my $sym=doop($op); # See comment in pp_grepwhile to see why! $init->add("((LISTOP*)$sym)->op_first = $sym;"); - runtime("if (PL_op != ($sym)->op_next && PL_op != (OP*)0 ){"); - runtime( sprintf("goto %s;",label($op))); + runtime("if (PL_op == ((LISTOP*)($sym))->op_first){"); + runtime( sprintf("goto %s;",label($op->first))); runtime("}"); return $op->next; }