On 01/20/2015 01:54 PM, Rasmus Lerdorf wrote:
> Things I have tried. changed it from "p" to "s" and also from "p" to "S"
> and using a zend_string * instead. In both cases I got the same bogus
> address back from zpp. Right now I am trying to make sense of the
> generated assembly differences, but it is slow going.

It looks like I might have messed up the zend_string try before. Both
Nikic and Michael suggested it probably had to to with int instead of
size_t for the arg lengths, which I had considered but figured since it
also broke with a zend_string which brings along the right length type
that wasn't it. But, re-applying my patch:

  https://gist.github.com/anonymous/713089b9acca67bce42e

seems to have fixed it.

So, I guess the lesson is that we need to be careful when we migrate
extensions to PHP 7. Passing ints instead of size_t string length params
to zpp can cause extreme weirdness and we should go through all our
bundled extensions and make sure things that are still using "s" have
all been changed to size_t.

-Rasmus

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to