summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2005-06-16 14:56:13 +0000
committerDmitry Stogov <dmitry@php.net>2005-06-16 14:56:13 +0000
commitaedbdb087d8cf449d5a7377c9ebb5a91998c1cc8 (patch)
tree1958b649fa3507c71e8d01eca7dcff68b1f9ad90 /Zend/zend_execute.c
parent43aa6922d3e7f1736e5b1788064f3085b54de693 (diff)
downloadphp-git-aedbdb087d8cf449d5a7377c9ebb5a91998c1cc8.tar.gz
Allowed return by refrence from internal functions
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 98547a1a17..9e79761f4f 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1291,7 +1291,8 @@ ZEND_API opcode_handler_t *zend_opcode_handlers;
ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC)
{
- ((zend_internal_function *) execute_data_ptr->function_state.function)->handler(execute_data_ptr->opline->extended_value, (*(temp_variable *)((char *) execute_data_ptr->Ts + execute_data_ptr->opline->result.u.var)).var.ptr, execute_data_ptr->object, return_value_used TSRMLS_CC);
+ zval **return_value_ptr = &(*(temp_variable *)((char *) execute_data_ptr->Ts + execute_data_ptr->opline->result.u.var)).var.ptr;
+ ((zend_internal_function *) execute_data_ptr->function_state.function)->handler(execute_data_ptr->opline->extended_value, *return_value_ptr, execute_data_ptr->function_state.function->common.return_reference?return_value_ptr:NULL, execute_data_ptr->object, return_value_used TSRMLS_CC);
}
#define ZEND_VM_NEXT_OPCODE() \