Re: [PATCH] Closures and reflection improvements
| From: | Marcus Boerger | Date: | Mon, 11 Aug 2008 10:23:57 +0000 |
| Subject: | Re: [PATCH] Closures and reflection improvements | ||
| References: | 1 2 3 4 5 6 7 8 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-39828@lists.php.net to get a copy of this message | ||
Hello Dmitry,
Monday, August 11, 2008, 10:51:44 AM, you wrote:
> 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.
Alright, didn't see that immediately.
> Thanks. Dmitry.
Thanks marcus
> 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
>>
Best regards,
Marcus