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
signature.asc
Description: OpenPGP digital signature