Hi Marcus,
I committed the ZE part of your patch with exception for
zend_error(E_ERROR, "Cannot destroy active lambda function");
Catching this error may cause memory corruption and crash.
Thanks. Dmitry.
Marcus Boerger wrote:
Hello Johannes, Christian, Felipe,
and here 5.3 and 6.0 versions that also have most memleaks fixed.
marcus
Saturday, August 9, 2008, 12:34:59 AM, you wrote:
Hello Christian, Johannes,
Friday, August 8, 2008, 11:48:37 PM, you wrote:
Hello Christian,
I updated your patch for 5.3 due to recent changes. It works pretty fine
for me. Care to test again, especially with your new tests? Note that test
ext/reflection/tests/closures_001.phpt does not work for me and I have no
clue why. Well, besides that obviously the closure class no longer has an
entry for __closure, so it is more a question of how to know when to add
this. Also, it appears you do not have a cvs account, or did I overlook
something?
Modified patch attached, including the updated reflection tests.
Ok, it is actually easy to fix, we just check whether the thing is a
closure and add the method manually, done. New patch attached.
Johannes, this also adresses the switch from E_ERROR to E_RECOVERABLE_ERROR
for the closure handlers.
best regards
marcus
Monday, August 4, 2008, 12:59:13 PM, you wrote:
Christian,
On Mon, 2008-08-04 at 11:33 +0400, Dmitry Stogov wrote:
http://www.christian-seiler.de/temp/php/2008-07-24-reflection/reflection-closure-fixes-5.3.patch
http://www.christian-seiler.de/temp/php/2008-07-24-reflection/reflection-closure-fixes-6.patch
without applying and testing the patch:
- zend_hash_apply_with_arguments(&ce->function_table TSRMLS_CC,
(apply_func_args_t) _addmethod, 3, &ce, return_value, filter);
+ zend_hash_apply_with_arguments(&ce->function_table TSRMLS_CC,
(apply_func_args_t) _addmethod, 3, &ce, return_value, filter, intern->obj);
that looks a bit strange, probably you want 4 instead of 3 now?
johannes
Best regards,
Marcus
Best regards,
Marcus
Best regards,
Marcus
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php