summaryrefslogtreecommitdiff
path: root/pp_ctl.c
diff options
context:
space:
mode:
authorAlex Davies <alex.davies@talktalk.net>2009-12-16 09:42:12 +0100
committerRafael Garcia-Suarez <rgs@consttype.org>2009-12-16 09:42:12 +0100
commit7e8f1eacdace90501f4e820697697c9c339efa6f (patch)
treeb52a4d3da3c3ae64237b9bcf5cb8ffe66fa2110e /pp_ctl.c
parent9d48bc6db099a4f84cb04d1ada69930fb35f8da1 (diff)
downloadperl-7e8f1eacdace90501f4e820697697c9c339efa6f.tar.gz
tweak to pp_ctl.c gives smaller object code
Diffstat (limited to 'pp_ctl.c')
-rw-r--r--pp_ctl.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/pp_ctl.c b/pp_ctl.c
index 27d94bcc46..c181d0fc13 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -1333,13 +1333,16 @@ S_dopoptolabel(pTHX_ const char *label)
case CXt_LOOP_LAZYSV:
case CXt_LOOP_FOR:
case CXt_LOOP_PLAIN:
- if ( !CxLABEL(cx) || strNE(label, CxLABEL(cx)) ) {
+ {
+ const char *cx_label = CxLABEL(cx);
+ if (!cx_label || strNE(label, cx_label) ) {
DEBUG_l(Perl_deb(aTHX_ "(Skipping label #%ld %s)\n",
- (long)i, CxLABEL(cx)));
+ (long)i, cx_label));
continue;
}
DEBUG_l( Perl_deb(aTHX_ "(Found label #%ld %s)\n", (long)i, label));
return i;
+ }
}
}
return i;
@@ -2413,9 +2416,11 @@ S_dofindlabel(pTHX_ OP *o, const char *label, OP **opstack, OP **oplimit)
OP *kid;
/* 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) &&
- CopLABEL(kCOP) && strEQ(CopLABEL(kCOP), label))
- return kid;
+ if (kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE) {
+ const char *kid_label = CopLABEL(kCOP);
+ if (kid_label && strEQ(kid_label, label))
+ return kid;
+ }
}
for (kid = cUNOPo->op_first; kid; kid = kid->op_sibling) {
if (kid == PL_lastgotoprobe)