Re: PHP 5.3.1 reference parameter regression
| From: | Stanislav Malyshev | Date: | Thu, 17 Dec 2009 19:28:29 +0000 |
| Subject: | Re: PHP 5.3.1 reference parameter regression | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-46462@lists.php.net to get a copy of this message | ||
Hi!
>>> Test cases can be found
>>> here:<http://bugs.php.net/bug.php?id=50394>. It
>>> seems to me that a special case would be needed to restore the behaviour
>>> seen in PHP 5.3.0.
>>
>> I'll check it out, seems to be valid use case, we should find some
>> solution for that.
>>
>
> There seems to have been no progress on this. Is there anything I can do
> to help?
Tim, could you check if the attached patch solves your problem?
--
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
Index: zend_execute_API.c =================================================================== --- zend_execute_API.c (revision 291849) +++ zend_execute_API.c (working copy) @@ -838,6 +838,7 @@ zval *param; if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION + && (EX(function_state).function->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0 && !ARG_SHOULD_BE_SENT_BY_REF(EX(function_state).function, i + 1) && PZVAL_IS_REF(*fci->params[i])) { SEPARATE_ZVAL(fci->params[i]);
Index: zend_execute_API.c =================================================================== --- zend_execute_API.c (revision 291849) +++ zend_execute_API.c (working copy) @@ -838,6 +838,7 @@ zval *param; if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION + && (EX(function_state).function->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0 && !ARG_SHOULD_BE_SENT_BY_REF(EX(function_state).function, i + 1) && PZVAL_IS_REF(*fci->params[i])) { SEPARATE_ZVAL(fci->params[i]);