From cabfbf712850d31081f7a9d0ebe03576b6ae980b Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 25 Feb 2014 13:47:33 +0400 Subject: [PATCH] Fixed IS_REFERENCE handling --- Zend/zend_closures.c | 2 +- Zend/zend_vm_def.h | 2 +- Zend/zend_vm_execute.h | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Zend/zend_closures.c b/Zend/zend_closures.c index a654736244..839a3ad41b 100644 --- a/Zend/zend_closures.c +++ b/Zend/zend_closures.c @@ -170,7 +170,7 @@ static zend_function *zend_closure_get_method(zval *object_ptr, zend_string *met lc_name = STR_ALLOC(method->len, 0); zend_str_tolower_copy(lc_name->val, method->val, method->len); if ((method->len == sizeof(ZEND_INVOKE_FUNC_NAME)-1) && - memcmp(lc_name, ZEND_INVOKE_FUNC_NAME, sizeof(ZEND_INVOKE_FUNC_NAME)-1) == 0 + memcmp(lc_name->val, ZEND_INVOKE_FUNC_NAME, sizeof(ZEND_INVOKE_FUNC_NAME)-1) == 0 ) { STR_FREE(lc_name); return zend_get_closure_invoke_method(object_ptr TSRMLS_CC); diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index ee828e7246..d0e17cea51 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -2601,7 +2601,7 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV) zend_free_op free_op2; SAVE_OPLINE(); - function_name = GET_OP2_ZVAL_PTR(BP_VAR_R); + function_name = GET_OP2_ZVAL_PTR_DEREF(BP_VAR_R); if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { if (Z_STRVAL_P(function_name)[0] == '\\') { diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index f42462d118..f04ef2b319 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -1955,7 +1955,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H zend_free_op free_op2; SAVE_OPLINE(); - function_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC); + function_name = _get_zval_ptr_var_deref(opline->op2.var, execute_data, &free_op2 TSRMLS_CC); if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { if (Z_STRVAL_P(function_name)[0] == '\\') { @@ -2185,7 +2185,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA SAVE_OPLINE(); - function_name = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC); + function_name = _get_zval_ptr_cv_deref_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC); if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { if (Z_STRVAL_P(function_name)[0] == '\\') { -- 2.50.1