summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.h
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_vm_execute.h')
-rw-r--r--Zend/zend_vm_execute.h13
1 files changed, 6 insertions, 7 deletions
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 435eaf3bb4..7cb915fa7d 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -492,6 +492,7 @@ static int ZEND_FASTCALL ZEND_DO_FCALL_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zend_execute_data *call = EX(call);
zend_function *fbc = call->func;
zend_object *object = Z_OBJ(call->This);
+ zval *ret;
SAVE_OPLINE();
EX(call) = call->prev_execute_data;
@@ -591,18 +592,16 @@ static int ZEND_FASTCALL ZEND_DO_FCALL_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zend_vm_stack_free_call_frame(call);
} else {
- zval *return_value = NULL;
-
+ ret = NULL;
call->symbol_table = NULL;
if (RETURN_VALUE_USED(opline)) {
- return_value = EX_VAR(opline->result.var);
-
- ZVAL_NULL(return_value);
- Z_VAR_FLAGS_P(return_value) = 0;
+ ret = EX_VAR(opline->result.var);
+ ZVAL_NULL(ret);
+ Z_VAR_FLAGS_P(ret) = 0;
}
call->prev_execute_data = execute_data;
- i_init_func_execute_data(call, &fbc->op_array, return_value);
+ i_init_func_execute_data(call, &fbc->op_array, ret);
if (EXPECTED(zend_execute_ex == execute_ex)) {
ZEND_VM_ENTER();