Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:51731 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 19507 invoked from network); 20 Mar 2011 01:52:57 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 20 Mar 2011 01:52:57 -0000 Authentication-Results: pb1.pair.com header.from=tstarling@wikimedia.org; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=tstarling@wikimedia.org; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain wikimedia.org from 66.111.4.27 cause and error) X-PHP-List-Original-Sender: tstarling@wikimedia.org X-Host-Fingerprint: 66.111.4.27 out3.smtp.messagingengine.com Received: from [66.111.4.27] ([66.111.4.27:45071] helo=out3.smtp.messagingengine.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id DD/A2-18282-8FD558D4 for ; Sat, 19 Mar 2011 20:52:56 -0500 Received: from compute2.internal (compute2.nyi.mail.srv.osa [10.202.2.42]) by gateway1.messagingengine.com (Postfix) with ESMTP id 40D40202D4 for ; Sat, 19 Mar 2011 21:52:54 -0400 (EDT) Received: from frontend2.messagingengine.com ([10.202.2.161]) by compute2.internal (MEProxy); Sat, 19 Mar 2011 21:52:54 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=messagingengine.com; h=message-id:date:from:mime-version:to:subject:references:in-reply-to:content-type; s=smtpout; bh=nmnmSGyT/5phNrSaOyik0bDhN8A=; b=JxfqUbJN4ecIP0h02pDmZ4l8qEa4On9fO5NQCJK4w0k5qhO9LgiDv1xcQT9UYuxtptfD5gTOXYfcqujqYczriY9l1fhebeB4EDNAGtnIr8OsgMe9vp4arLXNCpROur4O6BTvVzjHDgnS1sVi+3nouI34StL1U7ehZ9Rz7BF1pJg= X-Sasl-enc: LQquHECzbr7LbTRiwprv1Kg/ssCQnBaFCtA4Qv1FOzoE 1300585973 Received: from [10.0.0.2] (CPE-124-184-7-246.lns10.cht.bigpond.net.au [124.184.7.246]) by mail.messagingengine.com (Postfix) with ESMTPSA id 91D7B443B4D for ; Sat, 19 Mar 2011 21:52:53 -0400 (EDT) Message-ID: <4D855DF2.8040702@wikimedia.org> Date: Sun, 20 Mar 2011 12:52:50 +1100 User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Lightning/1.0b2 Thunderbird/3.1.8 MIME-Version: 1.0 To: internals Mailing List References: <4D803F21.1010209@wikimedia.org> In-Reply-To: <4D803F21.1010209@wikimedia.org> X-Enigmail-Version: 1.1.2 OpenPGP: id=BF976370 Content-Type: multipart/mixed; boundary="------------090402010700020200060706" Subject: Re: [PHP-DEV] [patch] Session RSHUTDOWN, shutdown_destructors() issues From: tstarling@wikimedia.org (Tim Starling) --------------090402010700020200060706 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit I guess I'm suffering from some tl;dr here. Here's the short version: please apply the attached patch to the 5.3 branch. It removes some code which is broken and unnecessary. --------------090402010700020200060706 Content-Type: text/x-diff; name="no-global-deletion.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="no-global-deletion.patch" Index: Zend/zend_execute_API.c =================================================================== --- Zend/zend_execute_API.c (revision 309263) +++ Zend/zend_execute_API.c (working copy) @@ -207,24 +207,9 @@ } /* }}} */ -static int zval_call_destructor(zval **zv TSRMLS_DC) /* {{{ */ -{ - if (Z_TYPE_PP(zv) == IS_OBJECT && Z_REFCOUNT_PP(zv) == 1) { - return ZEND_HASH_APPLY_REMOVE; - } else { - return ZEND_HASH_APPLY_KEEP; - } -} -/* }}} */ - void shutdown_destructors(TSRMLS_D) /* {{{ */ { zend_try { - int symbols; - do { - symbols = zend_hash_num_elements(&EG(symbol_table)); - zend_hash_reverse_apply(&EG(symbol_table), (apply_func_t) zval_call_destructor TSRMLS_CC); - } while (symbols != zend_hash_num_elements(&EG(symbol_table))); zend_objects_store_call_destructors(&EG(objects_store) TSRMLS_CC); } zend_catch { /* if we couldn't destruct cleanly, mark all objects as destructed anyway */ --------------090402010700020200060706--