Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:39828 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 52554 invoked from network); 11 Aug 2008 10:24:04 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 11 Aug 2008 10:24:04 -0000 Authentication-Results: pb1.pair.com smtp.mail=helly@php.net; spf=unknown; sender-id=unknown Authentication-Results: pb1.pair.com header.from=helly@php.net; sender-id=unknown Received-SPF: unknown (pb1.pair.com: domain php.net does not designate 85.214.94.56 as permitted sender) X-PHP-List-Original-Sender: helly@php.net X-Host-Fingerprint: 85.214.94.56 aixcept.net Linux 2.6 Received: from [85.214.94.56] ([85.214.94.56:34739] helo=h1149922.serverkompetenz.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id CC/B3-30561-34310A84 for ; Mon, 11 Aug 2008 06:24:04 -0400 Received: from MBOERGER-ZRH (unknown [193.142.125.1]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by h1149922.serverkompetenz.net (Postfix) with ESMTP id E29A711DB57; Mon, 11 Aug 2008 12:24:00 +0200 (CEST) Date: Mon, 11 Aug 2008 12:23:57 +0200 Reply-To: Marcus Boerger X-Priority: 3 (Normal) Message-ID: <1446091491.20080811122357@marcus-boerger.de> To: Dmitry Stogov CC: =?iso-8859-15?Q?Johannes_Schl=FCter?= , Christian Seiler , Felipe Pena , php-dev List In-Reply-To: <489FFDA0.4080206@zend.com> References: <48886651.80407@gmx.net> <4889F43D.8030609@gmx.net> <4896B0B4.2090801@zend.com> <1217847553.4175.23.camel@goldfinger.johannes.nop> <875726149.20080808234837@marcus-boerger.de> <803831941.20080809003459@marcus-boerger.de> <1199358810.20080811005138@marcus-boerger.de> <489FFDA0.4080206@zend.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8bit Subject: Re: [PHP-DEV] [PATCH] Closures and reflection improvements From: helly@php.net (Marcus Boerger) 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