I'm contributing to an extension -- https://github.com/jbboehr/php-mustache
-- and part of that has been little fixes for PHP7. I posted a PR to fix
how it was handling zvals that came in as IS_INDIRECT. The maintainer asked
if I could extend the .phpt coverage accordingly. The reading I've done has
made it sound like this is an implementation detail that would never
surface in userland. Is that true, or is there something I can do from
tests to make sure these code paths get used?
Thanks,
Adam
I'm contributing to an extension --
https://github.com/jbboehr/php-mustache
-- and part of that has been little fixes for PHP7. I posted a PR to fix
how it was handling zvals that came in as IS_INDIRECT. The maintainer asked
if I could extend the .phpt coverage accordingly. The reading I've done has
made it sound like this is an implementation detail that would never
surface in userland. Is that true, or is there something I can do from
tests to make sure these code paths get used?
Assuming you're talking about hashtables here and not engine code, there
are two places where INDIRECT values are used:
a) The object properties hashtable (if used) contains INDIRECT references
to declared properties in the property table.
b) The $GLOBALS array contains INDIRECT references to variables in the CV
table.
That's the only two cases how you should be able to encounter INDIRECTs in
"normal" extension code. (I think.)
Nikita