diff options
| author | Dmitry Stogov <dmitry@php.net> | 2005-06-16 14:56:13 +0000 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@php.net> | 2005-06-16 14:56:13 +0000 |
| commit | aedbdb087d8cf449d5a7377c9ebb5a91998c1cc8 (patch) | |
| tree | 1958b649fa3507c71e8d01eca7dcff68b1f9ad90 /Zend/zend_execute.c | |
| parent | 43aa6922d3e7f1736e5b1788064f3085b54de693 (diff) | |
| download | php-git-aedbdb087d8cf449d5a7377c9ebb5a91998c1cc8.tar.gz | |
Allowed return by refrence from internal functions
Diffstat (limited to 'Zend/zend_execute.c')
| -rw-r--r-- | Zend/zend_execute.c | 3 |
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() \ |
