summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2005-07-18 07:41:11 +0000
committerDmitry Stogov <dmitry@php.net>2005-07-18 07:41:11 +0000
commit2fb797e32522bdd8777b12aeeff1d84d9edd2aed (patch)
tree09187b8d2a882d06dc2ef3eed72996dec1143b75 /Zend/zend_execute.c
parent522bdfb820314caf95f6117675035e231c57566a (diff)
downloadphp-git-2fb797e32522bdd8777b12aeeff1d84d9edd2aed.tar.gz
Fixed bug #33558 (warning with nested calls to functions returning by reference)
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index b00a3a68d3..b000eb0a87 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -2911,8 +2911,9 @@ int zend_return_handler(ZEND_OPCODE_HANDLER_ARGS)
}
if (!(*retval_ptr_ptr)->is_ref) {
- if (EX_T(opline->op1.u.var).var.ptr_ptr == &EX_T(opline->op1.u.var).var.ptr
- || (opline->extended_value == ZEND_RETURNS_FUNCTION && !EX_T(opline->op1.u.var).var.fcall_returned_reference)) {
+ if (opline->extended_value == ZEND_RETURNS_FUNCTION &&
+ EX_T(opline->op1.u.var).var.fcall_returned_reference) {
+ } else if (EX_T(opline->op1.u.var).var.ptr_ptr == &EX_T(opline->op1.u.var).var.ptr) {
PZVAL_LOCK(*retval_ptr_ptr); /* undo the effect of get_zval_ptr_ptr() */
zend_error(E_STRICT, "Only variable references should be returned by reference");
goto return_by_value;