diff options
author | Dmitry Stogov <dmitry@zend.com> | 2015-10-28 23:10:33 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2015-10-28 23:10:33 +0300 |
commit | da8e6ec4a5063d9f60f83f43c55bc17d015cac8b (patch) | |
tree | 15e61d7dd73bed1a8e78940ddcbcda5555827838 /ext/opcache/Optimizer/pass1_5.c | |
parent | 3b44e40277a9e623df3f4389d3ebd42e495735cb (diff) | |
download | php-git-da8e6ec4a5063d9f60f83f43c55bc17d015cac8b.tar.gz |
Fixed incorrect instruction cleanup
Diffstat (limited to 'ext/opcache/Optimizer/pass1_5.c')
-rw-r--r-- | ext/opcache/Optimizer/pass1_5.c | 10 |
1 files changed, 5 insertions, 5 deletions
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); } |