From: Nikita Popov Date: Tue, 28 Jun 2016 09:57:04 +0000 (+0200) Subject: Use DO_UCALL for method calls X-Git-Tag: php-7.1.0alpha3~66 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cb7cc16c2d27c5e955ec1763278279dbcc77d026;p=php Use DO_UCALL for method calls --- diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index f5f1999c64..144c2fb874 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -3195,9 +3195,9 @@ uint32_t zend_compile_args(zend_ast *ast, zend_function *fbc) /* {{{ */ ZEND_API zend_uchar zend_get_call_op(const zend_op *init_op, zend_function *fbc) /* {{{ */ { - if (fbc && init_op->opcode == ZEND_INIT_FCALL) { + if (fbc) { if (fbc->type == ZEND_INTERNAL_FUNCTION) { - if (!zend_execute_internal) { + if (init_op->opcode == ZEND_INIT_FCALL && !zend_execute_internal) { if (!(fbc->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED|ZEND_ACC_HAS_TYPE_HINTS|ZEND_ACC_RETURN_REFERENCE))) { return ZEND_DO_ICALL; } else { @@ -3205,7 +3205,7 @@ ZEND_API zend_uchar zend_get_call_op(const zend_op *init_op, zend_function *fbc) } } } else { - if (zend_execute_ex == execute_ex) { + if (zend_execute_ex == execute_ex && !(fbc->common.fn_flags & ZEND_ACC_ABSTRACT)) { return ZEND_DO_UCALL; } }