summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-03-25 23:35:56 +0800
committerXinchen Hui <laruence@php.net>2015-03-25 23:35:56 +0800
commit6aaee5fc1418decf049e3c3ab33b97b9d081c892 (patch)
tree09455444912ea24eef6d010882b2bb9fb4127726
parentc7da95e5ab4f5f8bc015627149a73cfb8b2dbf93 (diff)
parente46e9a3d22c22ec567423c25f83a6fd7f9655c52 (diff)
downloadphp-git-6aaee5fc1418decf049e3c3ab33b97b9d081c892.tar.gz
Merge branch 'PHP-5.6'
Conflicts: ext/opcache/Optimizer/pass1_5.c
-rw-r--r--ext/opcache/Optimizer/pass1_5.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/ext/opcache/Optimizer/pass1_5.c b/ext/opcache/Optimizer/pass1_5.c
index 9a5ae14de8..3cb11aa809 100644
--- a/ext/opcache/Optimizer/pass1_5.c
+++ b/ext/opcache/Optimizer/pass1_5.c
@@ -443,7 +443,12 @@ void zend_optimizer_pass1(zend_op_array *op_array, zend_optimizer_ctx *ctx)
func->type == ZEND_INTERNAL_FUNCTION &&
func->module->type == MODULE_PERSISTENT) {
zval t;
- ZVAL_TRUE(&t);
+ if (Z_STRLEN(ZEND_OP2_LITERAL(init_opline)) == sizeof("is_callable") - 1 ||
+ func->handler != ZEND_FN(display_disabled_function)) {
+ ZVAL_TRUE(&t);
+ } else {
+ ZVAL_FALSE(&t);
+ }
if (zend_optimizer_replace_by_const(op_array, opline + 1, IS_VAR, ZEND_RESULT(opline).var, &t)) {
literal_dtor(&ZEND_OP2_LITERAL(init_opline));
MAKE_NOP(init_opline);