diff options
author | Vincent Pit <perl@profvince.com> | 2008-09-09 00:10:34 +0200 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2008-09-08 20:37:54 +0000 |
commit | 07f3cdf531981dab87affaed2b19fbce13486783 (patch) | |
tree | 8e4a644114c891b40712d76d8b4695a98ff27c39 /op.c | |
parent | e37e15afdcc8f08e993ebae0fd343b1a4fdf1e75 (diff) | |
download | perl-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.c | 14 |
1 files changed, 2 insertions, 12 deletions
@@ -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 */ } } |