Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:1963 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 12752 invoked from network); 24 May 2003 01:53:25 -0000 Received: from unknown (HELO vckyb1.nw.wakwak.com) (211.9.230.144) by pb1.pair.com with SMTP; 24 May 2003 01:53:25 -0000 Received: from at.wakwak.com (at.wakwak.com [211.9.230.135:25]) by vckyb1.nw.wakwak.com (Postfix) with ESMTP id 9A1A13FE19 for ; Sat, 24 May 2003 10:53:24 +0900 (JST) Received: from at.wakwak.com (z68.219-121-64.ppp.wakwak.ne.jp [219.121.64.68]) by at.wakwak.com (8.12.9/8.12.9/2003-03-31) with SMTP id h4O1rOH5024064 for ; Sat, 24 May 2003 10:53:24 +0900 (JST) (envelope-from moriyoshi@at.wakwak.com) Date: Sat, 24 May 2003 10:56:25 +0900 X-Mailer: EdMax Ver2.85.3F MIME-Version: 1.0 To: php-internal Message-ID: <20030524105625u+JwFN@at.wakwak.com> Content-Type: multipart/mixed; boundary="------------Boundary_RvGbCwb9NYv(jEf" Subject: patch for bug #17115 From: moriyoshi@at.wakwak.com (Moriyoshi Koizumi) --------------Boundary_RvGbCwb9NYv(jEf Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hello, The attached patch is the quick fix for bug #17115. The cause of this problem is that the hashtable that holds static variables of the lambda function being generated is wrongly destroyed in zend_hash_del() right after the call of zend_hash_add(), as function_add_ref() virtually copy-constructs the static variables as well as simply incrementing the reference count of op_array. Moriyoshi --------------Boundary_RvGbCwb9NYv(jEf Content-Type: text/plain; name="bug17115-patch.diff.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="bug17115-patch.diff.txt" SW5kZXg6IFplbmQvemVuZF9idWlsdGluX2Z1bmN0aW9ucy5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT IGZpbGU6IC9yZXBvc2l0b3J5L1plbmRFbmdpbmUyL3plbmRfYnVpbHRpbl9mdW5jdGlvbnMu Yyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xODcKZGlmZiAtdSAtcjEuMTg3IHplbmRfYnVp bHRpbl9mdW5jdGlvbnMuYwotLS0gWmVuZC96ZW5kX2J1aWx0aW5fZnVuY3Rpb25zLmMJMjEg QXByIDIwMDMgMTc6MDE6MzQgLTAwMDAJMS4xODcKKysrIFplbmQvemVuZF9idWlsdGluX2Z1 bmN0aW9ucy5jCTI0IE1heSAyMDAzIDAxOjMyOjA2IC0wMDAwCkBAIC0xMjYwLDIwICsxMjYw LDIyIEBACiAJZWZyZWUoZXZhbF9uYW1lKTsKIAogCWlmIChyZXR2YWw9PVNVQ0NFU1MpIHsK LQkJemVuZF9mdW5jdGlvbiAqZnVuYzsKKwkJemVuZF9mdW5jdGlvbiAqcGZ1bmM7CisJCXpl bmRfZnVuY3Rpb24gZnVuYzsKIAotCQlpZiAoemVuZF9oYXNoX2ZpbmQoRUcoZnVuY3Rpb25f dGFibGUpLCBMQU1CREFfVEVNUF9GVU5DTkFNRSwgc2l6ZW9mKExBTUJEQV9URU1QX0ZVTkNO QU1FKSwgKHZvaWQgKiopICZmdW5jKT09RkFJTFVSRSkgeworCQlpZiAoemVuZF9oYXNoX2Zp bmQoRUcoZnVuY3Rpb25fdGFibGUpLCBMQU1CREFfVEVNUF9GVU5DTkFNRSwgc2l6ZW9mKExB TUJEQV9URU1QX0ZVTkNOQU1FKSwgKHZvaWQgKiopICZwZnVuYyk9PUZBSUxVUkUpIHsKIAkJ CXplbmRfZXJyb3IoRV9FUlJPUiwgIlVuZXhwZWN0ZWQgaW5jb25zaXN0ZW5jeSBpbiBjcmVh dGVfZnVuY3Rpb24oKSIpOwogCQkJUkVUVVJOX0ZBTFNFOwogCQl9Ci0JCWZ1bmN0aW9uX2Fk ZF9yZWYoZnVuYyk7CisJCWZ1bmMgPSAqcGZ1bmM7CisJCWZ1bmN0aW9uX2FkZF9yZWYoJmZ1 bmMpOyAvKiBmdW5jIGlzIHZpcnR1YWxseSBjb3B5LWNvbnN0cmN0ZWQgaGVyZSAqLwogCiAJ CWZ1bmN0aW9uX25hbWUgPSAoY2hhciAqKSBlbWFsbG9jKHNpemVvZigiMGxhbWJkYV8iKStN QVhfTEVOR1RIX09GX0xPTkcpOwogCiAJCWRvIHsKIAkJCXNwcmludGYoZnVuY3Rpb25fbmFt ZSwgIiVjbGFtYmRhXyVkIiwgMCwgKytFRyhsYW1iZGFfY291bnQpKTsKIAkJCWZ1bmN0aW9u X25hbWVfbGVuZ3RoID0gc3RybGVuKGZ1bmN0aW9uX25hbWUrMSkrMTsKLQkJfSB3aGlsZSAo emVuZF9oYXNoX2FkZChFRyhmdW5jdGlvbl90YWJsZSksIGZ1bmN0aW9uX25hbWUsIGZ1bmN0 aW9uX25hbWVfbGVuZ3RoKzEsIGZ1bmMsIHNpemVvZih6ZW5kX2Z1bmN0aW9uKSwgTlVMTCk9 PUZBSUxVUkUpOworCQl9IHdoaWxlICh6ZW5kX2hhc2hfYWRkKEVHKGZ1bmN0aW9uX3RhYmxl KSwgZnVuY3Rpb25fbmFtZSwgZnVuY3Rpb25fbmFtZV9sZW5ndGgrMSwgJmZ1bmMsIHNpemVv Zih6ZW5kX2Z1bmN0aW9uKSwgTlVMTCk9PUZBSUxVUkUpOwogCQl6ZW5kX2hhc2hfZGVsKEVH KGZ1bmN0aW9uX3RhYmxlKSwgTEFNQkRBX1RFTVBfRlVOQ05BTUUsIHNpemVvZihMQU1CREFf VEVNUF9GVU5DTkFNRSkpOwogCQlSRVRVUk5fU1RSSU5HTChmdW5jdGlvbl9uYW1lLCBmdW5j dGlvbl9uYW1lX2xlbmd0aCwgMCk7CiAJfSBlbHNlIHsK --------------Boundary_RvGbCwb9NYv(jEf--