From: Dmitry Stogov Date: Wed, 28 Oct 2015 20:10:33 +0000 (+0300) Subject: Fixed incorrect instruction cleanup X-Git-Tag: php-7.1.0alpha2~40^2~36^2~4 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=da8e6ec4a5063d9f60f83f43c55bc17d015cac8b;p=php Fixed incorrect instruction cleanup --- diff --git a/ext/opcache/Optimizer/pass1_5.c b/ext/opcache/Optimizer/pass1_5.c index 0e4136032d..2aba4db3e5 100644 --- a/ext/opcache/Optimizer/pass1_5.c +++ b/ext/opcache/Optimizer/pass1_5.c @@ -341,12 +341,12 @@ void zend_optimizer_pass1(zend_op_array *op_array, zend_optimizer_ctx *ctx) zval_copy_ctor(&t); } - if (ZEND_OP1_TYPE(opline) == IS_CONST) { - literal_dtor(&ZEND_OP1_LITERAL(opline)); - } else { - MAKE_NOP((opline - 1)); - } if (zend_optimizer_replace_by_const(op_array, opline, IS_TMP_VAR, tv, &t)) { + if (ZEND_OP1_TYPE(opline) == IS_CONST) { + literal_dtor(&ZEND_OP1_LITERAL(opline)); + } else if (ZEND_OP1_TYPE(opline) == IS_VAR) { + MAKE_NOP((opline - 1)); + } literal_dtor(&ZEND_OP2_LITERAL(opline)); MAKE_NOP(opline); }