Hello Christian, Monday, August 11, 2008, 8:43:31 PM, you wrote:
> Hi, >> all submitted now. Thanks everyone for their help and especially >> Christian for getting this started. > Thanks for making my patch work after the modifications in > zend_closures.c. I'm sorry I couldn't do it myself but I was kind of > busy the last few days and the "simple fix" created memory leaks and I > didn't want to post a knowingly broken patch. > Anyway, there are still segfaults in the current version: > $foo = function ($a) {}; > $o = new ReflectionMethod ($foo); > $p = $o->getParameters (); > unset ($o); > $m = $p[0]->getDeclaringFunction (); > Reflection::export ($m); > $foo = function ($a) {}; > $p = new ReflectionParameter ($foo, 'a'); > $m = $p->getDeclaringFunction (); > unset ($p); > Reflection::export ($m); > This is due to the fact that getParameters() / getDeclaringFunction() > don't copy the fptr and fptr->common.function_name pointers if it's a > closure. Here are patches for PHP 5.3 and HEAD that fix the problem: > http://www.christian-seiler.de/temp/php/2008-08-11-reflection/segfaults-5.3.patch > http://www.christian-seiler.de/temp/php/2008-08-11-reflection/segfaults-6.patch > Also, the following test that I already posted should be added to > PHP_5_2, PHP_5_3 and HEAD: > http://www.christian-seiler.de/temp/php/2008-07-24-reflection/reflectionParameter_invalidMethodInConstructor.phpt > The test already works for PHP_5_3 (since the fix for that was included > in my original patch) but a segfault still occurs in PHP_5_2 and HEAD, > my patch that I already posted fixes that problem for 5.2: > http://www.christian-seiler.de/temp/php/2008-07-24-reflection/reflection-segfault-fix-5.2.patch > My original patch also fixed the problem for HEAD, I readded that part > to the above segfault patch for HEAD. >> Also, it appears you do not have a cvs account, or did I overlook >> something? > No, I don't. Dmitry also mentioned that - should I request one? Yes, please do and the seg fix patch should have a function to do the copying as it is not complete, so we can add to it as necessary. Best regards, Marcus -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php