Edit report at https://bugs.php.net/bug.php?id=66331&edit=1
ID: 66331
Comment by: krakjoe@php.net
Reported by: remi@php.net
Summary: ZEND_SEND_PREFER_REF issue trying to overlad
Status: Open
Type: Bug
Package: *General Issues
Operating System: irrevelant
PHP Version: 5.5.7
Block user comment: N
Private report: N
New Comment:
Here is some test code that shows the patch to compiler is correct:
http://pastebin.com/VFjwL0bv
You can make that error in the way you expect, if the prototype does not match exactly.
Previous Comments:
------------------------------------------------------------------------
[2013-12-20 19:29:57] krakjoe@php.net
the patch is correct, what is not correct is the arg info in memcached extension.
however, it is not currently possible to write the arginfo with the current macros, the correct
arginfo as it is expected is:
ZEND_BEGIN_ARG_INFO_EX(arginfo_get, 0, 0, 1)
ZEND_ARG_INFO(0, key)
{ "cache_cb", sizeof("cache_cb")-1, NULL, 0, 0, 1, 0},
{ "cas_token", sizeof("cas_token")-1, NULL, 0, 0, 1, 2},
{ "udf_flags", sizeof("udf_flags")-1, NULL, 0, 0, 1, 2}
ZEND_END_ARG_INFO()
To hide the symptoms is not enough, the arg_info must reflect what is actually required, it should
be parsed, and have a way to be specified in C correctly.
------------------------------------------------------------------------
[2013-12-20 17:59:57] remi@php.net
@krackjoe, thanks, but with your patch applied on 5.5.7, this doesn't change the result of
provided case.
A simple fix, see "pass-by-ref-proto-check.patch" just make
zend_do_perform_implementation_check a little less strict, and consider pass_by_reference as a
boolean (so consider 1 and 2 as equivalent, for the proto check).
------------------------------------------------------------------------
[2013-12-20 17:56:24] remi@php.net
The following patch has been added/updated:
Patch Name: pass-by-ref-proto-check.patch
Revision: 1387562184
URL: https://bugs.php.net/patch-display.php?bug=66331&patch=pass-by-ref-proto-check.patch&revision=1387562184
------------------------------------------------------------------------
[2013-12-20 17:04:12] rdlowrey@php.net
Just tested krakjoe's patch -- works for me.
------------------------------------------------------------------------
[2013-12-20 16:06:30] krakjoe@php.net
The following patch has been added/updated:
Patch Name: pass-by-ref-recv-init.patch
Revision: 1387555590
URL: https://bugs.php.net/patch-display.php?bug=66331&patch=pass-by-ref-recv-init.patch&revision=1387555590
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=66331
--
Edit this bug report at https://bugs.php.net/bug.php?id=66331&edit=1