diff options
author | Dmitry Stogov <dmitry@php.net> | 2005-07-18 07:41:11 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2005-07-18 07:41:11 +0000 |
commit | 2fb797e32522bdd8777b12aeeff1d84d9edd2aed (patch) | |
tree | 09187b8d2a882d06dc2ef3eed72996dec1143b75 /Zend/zend_execute.c | |
parent | 522bdfb820314caf95f6117675035e231c57566a (diff) | |
download | php-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.c | 5 |
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; |