summaryrefslogtreecommitdiff
path: root/ext/opcache/Optimizer/pass1_5.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2015-10-28 23:10:33 +0300
committerDmitry Stogov <dmitry@zend.com>2015-10-28 23:10:33 +0300
commitda8e6ec4a5063d9f60f83f43c55bc17d015cac8b (patch)
tree15e61d7dd73bed1a8e78940ddcbcda5555827838 /ext/opcache/Optimizer/pass1_5.c
parent3b44e40277a9e623df3f4389d3ebd42e495735cb (diff)
downloadphp-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.c10
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);
}