From: Dmitry Stogov Date: Wed, 24 Aug 2005 10:41:51 +0000 (+0000) Subject: Fixed return-by-reference from internal functions X-Git-Tag: PRE_NEW_OCI8_EXTENSION~106 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5820ee959e8e68f1618c8bb9c991b9a2e4ebfc5c;p=php Fixed return-by-reference from internal functions --- diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 51d2a108dc..81362d5f67 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -1885,6 +1885,8 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY) */ if (!return_value_used) { zval_ptr_dtor(&EX_T(opline->result.u.var).var.ptr); + } else { + EX_T(opline->result.u.var).var.fcall_returned_reference = EX(function_state).function->common.return_reference; } } else if (EX(function_state).function->type == ZEND_USER_FUNCTION) { HashTable *calling_symbol_table; diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 41bc307c3e..4db7b67aa8 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -206,6 +206,8 @@ static int zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS) */ if (!return_value_used) { zval_ptr_dtor(&EX_T(opline->result.u.var).var.ptr); + } else { + EX_T(opline->result.u.var).var.fcall_returned_reference = EX(function_state).function->common.return_reference; } } else if (EX(function_state).function->type == ZEND_USER_FUNCTION) { HashTable *calling_symbol_table;