Re: [PATCH] Closures and reflection improvements
| From: | Marcus Boerger | Date: | Mon, 11 Aug 2008 12:45:02 +0000 |
| Subject: | Re: [PATCH] Closures and reflection improvements | ||
| References: | 1 2 3 4 5 6 7 8 9 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-39830@lists.php.net to get a copy of this message | ||
Hello guys,
all submitted now. Thanks everyone for their help and especially
Christian for getting this started.
marcus
Monday, August 11, 2008, 12:23:57 PM, you wrote:
> 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
Best regards,
Marcus