summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorAndy Lester <andy@petdance.com>2006-04-19 18:16:53 -0500
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2006-04-20 10:02:25 +0000
commite15d5972b12383d939a792aa5189460c258c4f51 (patch)
treeff5391de96494240dce2f7b6a7449bb1044053f0 /sv.c
parentc4fd899278c3d558515085807d99f631cae59e1b (diff)
downloadperl-e15d5972b12383d939a792aa5189460c258c4f51.tar.gz
op_type shrinking
Message-ID: <20060420041653.GA28523@petdance.com> p4raw-id: //depot/perl@27910
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/sv.c b/sv.c
index df5a5564e6..198a2c9c53 100644
--- a/sv.c
+++ b/sv.c
@@ -11889,7 +11889,7 @@ S_find_uninit_var(pTHX_ OP* obase, SV* uninit_sv, bool match)
subscript_type = FUV_SUBSCRIPT_HASH;
}
else {
- index = S_find_array_subscript(aTHX_ (AV*)sv, uninit_sv);
+ index = find_array_subscript((AV*)sv, uninit_sv);
if (index >= 0)
subscript_type = FUV_SUBSCRIPT_ARRAY;
}
@@ -12103,13 +12103,14 @@ S_find_uninit_var(pTHX_ OP* obase, SV* uninit_sv, bool match)
* or are optimized away, then it's unambiguous */
o2 = NULL;
for (kid=o; kid; kid = kid->op_sibling) {
- if (kid &&
- ( (kid->op_type == OP_CONST && SvOK(cSVOPx_sv(kid)))
- || (kid->op_type == OP_NULL && ! (kid->op_flags & OPf_KIDS))
- || (kid->op_type == OP_PUSHMARK)
+ if (kid) {
+ const OPCODE type = kid->op_type;
+ if ( (type == OP_CONST && SvOK(cSVOPx_sv(kid)))
+ || (type == OP_NULL && ! (kid->op_flags & OPf_KIDS))
+ || (type == OP_PUSHMARK)
)
- )
continue;
+ }
if (o2) { /* more than one found */
o2 = NULL;
break;