summaryrefslogtreecommitdiff
path: root/ext/opcache
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2014-11-18 20:30:43 +0100
committerOndřej Surý <ondrej@sury.org>2014-11-18 20:30:43 +0100
commitf40f1ce174885cd0f526c003eca3fa523e0ef269 (patch)
treece22a7abe1212824c0be6bace0eb49de7249f9f9 /ext/opcache
parent1dc5de7731d1bc41002f9b58f798e93f393e6f08 (diff)
downloadphp-upstream/5.6.3+dfsg.tar.gz
New upstream version 5.6.3+dfsgupstream/5.6.3+dfsg
Diffstat (limited to 'ext/opcache')
-rw-r--r--ext/opcache/Optimizer/pass1_5.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/opcache/Optimizer/pass1_5.c b/ext/opcache/Optimizer/pass1_5.c
index 30705ff18..41dde0508 100644
--- a/ext/opcache/Optimizer/pass1_5.c
+++ b/ext/opcache/Optimizer/pass1_5.c
@@ -252,6 +252,9 @@ if (ZEND_OPTIMIZER_PASS_1 & OPTIMIZATION_LEVEL) {
break;
}
}
+ if (Z_TYPE(c) == IS_CONSTANT_AST) {
+ break;
+ }
literal_dtor(&ZEND_OP2_LITERAL(opline));
MAKE_NOP(opline);
replace_tmp_by_const(op_array, opline, tv, &c TSRMLS_CC);
@@ -303,6 +306,9 @@ if (ZEND_OPTIMIZER_PASS_1 & OPTIMIZATION_LEVEL) {
Z_STRVAL(ZEND_OP2_LITERAL(opline)),
Z_STRLEN(ZEND_OP2_LITERAL(opline)) + 1,
(void **) &c) == SUCCESS) {
+ if (Z_TYPE_PP(c) == IS_CONSTANT_AST) {
+ break;
+ }
if (ZEND_IS_CONSTANT_TYPE(Z_TYPE_PP(c))) {
if (!zend_get_persistent_constant(Z_STRVAL_PP(c), Z_STRLEN_PP(c), &t, 1 TSRMLS_CC) ||
ZEND_IS_CONSTANT_TYPE(Z_TYPE(t))) {