summaryrefslogtreecommitdiff
path: root/op.c
diff options
context:
space:
mode:
authorVincent Pit <perl@profvince.com>2008-09-09 00:10:34 +0200
committerNicholas Clark <nick@ccl4.org>2008-09-08 20:37:54 +0000
commit07f3cdf531981dab87affaed2b19fbce13486783 (patch)
tree8e4a644114c891b40712d76d8b4695a98ff27c39 /op.c
parente37e15afdcc8f08e993ebae0fd343b1a4fdf1e75 (diff)
downloadperl-07f3cdf531981dab87affaed2b19fbce13486783.tar.gz
Re: 'if not / unless' optimization change makes my pow test go POW!
Message-ID: <48C586BA.4050603@profvince.com> Date: Mon, 08 Sep 2008 22:10:34 +0200 p4raw-id: //depot/perl@34322
Diffstat (limited to 'op.c')
-rw-r--r--op.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/op.c b/op.c
index ef8fc1a3c7..d50660d36e 100644
--- a/op.c
+++ b/op.c
@@ -4476,19 +4476,9 @@ S_new_logop(pTHX_ I32 type, I32 flags, OP** firstp, OP** otherp)
type = OP_OR;
else
type = OP_AND;
- o = first;
- first = *firstp = cUNOPo->op_first;
- if (o->op_next)
- first->op_next = o->op_next;
- cUNOPo->op_first = NULL;
- op_free(o);
+ op_null(first);
if (other->op_type == OP_NOT) { /* !a AND|OR !b => !(a OR|AND b) */
- o = other;
- other = *otherp = cUNOPo->op_first;
- if (o->op_next)
- other->op_next = o->op_next;
- cUNOPo->op_first = NULL;
- op_free(o);
+ op_null(other);
prepend_not = 1; /* prepend a NOT op later */
}
}