diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1999-08-02 08:13:16 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1999-08-02 08:13:16 +0000 |
commit | c4aa4e48f6391636ad30f4c9b73dc74fdcf93711 (patch) | |
tree | dbbb288f26cc3c332f62412d322eb794f1584304 /pp_ctl.c | |
parent | a502f3d85db268d649a552e90a4cefc6995a8e16 (diff) | |
download | perl-c4aa4e48f6391636ad30f4c9b73dc74fdcf93711.tar.gz |
change#3692 had an unintentional patch leak through!
(this would explain the mysterious C<next LABEL> failures
people have seen)
p4raw-link: @3692 on //depot/perl: 2c15bef39460c09b2a7846a30a4fc1fc1c4f93e4
p4raw-id: //depot/perl@3878
Diffstat (limited to 'pp_ctl.c')
-rw-r--r-- | pp_ctl.c | 19 |
1 files changed, 8 insertions, 11 deletions
@@ -1921,32 +1921,29 @@ S_dofindlabel(pTHX_ OP *o, char *label, OP **opstack, OP **oplimit) *ops++ = cUNOPo->op_first; if (ops >= oplimit) Perl_croak(aTHX_ too_deep); - *ops = 0; } + *ops = 0; if (o->op_flags & OPf_KIDS) { dTHR; /* First try all the kids at this level, since that's likeliest. */ for (kid = cUNOPo->op_first; kid; kid = kid->op_sibling) { - if ((kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE) - && kCOP->cop_label && strEQ(kCOP->cop_label, label)) - { + if ((kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE) && + kCOP->cop_label && strEQ(kCOP->cop_label, label)) return kid; - } } 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))) - { + 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; - *ops = 0; - } if (o = dofindlabel(kid, label, ops, oplimit)) return o; } } + *ops = 0; return 0; } |