Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:70467 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 75365 invoked from network); 2 Dec 2013 12:35:21 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 2 Dec 2013 12:35:21 -0000 Authentication-Results: pb1.pair.com smtp.mail=remi@fedoraproject.org; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=remi@fedoraproject.org; sender-id=unknown Received-SPF: error (pb1.pair.com: domain fedoraproject.org from 212.27.42.3 cause and error) X-PHP-List-Original-Sender: remi@fedoraproject.org X-Host-Fingerprint: 212.27.42.3 smtp3-g21.free.fr Linux 2.6 Received: from [212.27.42.3] ([212.27.42.3:41837] helo=smtp3-g21.free.fr) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id E6/B3-52529-68E7C925 for ; Mon, 02 Dec 2013 07:35:20 -0500 Received: from schrodingerscat.famillecollet.com (unknown [82.241.130.121]) by smtp3-g21.free.fr (Postfix) with ESMTP id 6C27CA63B6 for ; Mon, 2 Dec 2013 13:35:11 +0100 (CET) Message-ID: <529C7E7E.7080903@fedoraproject.org> Date: Mon, 02 Dec 2013 13:35:10 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 MIME-Version: 1.0 To: PHP Internals References: <529C5AD9.8090804@fedoraproject.org> In-Reply-To: <529C5AD9.8090804@fedoraproject.org> X-Enigmail-Version: 1.6 Content-Type: multipart/mixed; boundary="------------060901010705090003040904" Subject: Re: [PHP-DEV] Howto use zend_register_functions ? possible bug with patch From: remi@fedoraproject.org (Remi Collet) --------------060901010705090003040904 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Iterating on CG(function_table) instead of module.functions is a possible fix. Attached: rewrite of get_extension_funcs Test: foreach(get_loaded_extensions() as $ext) { $a[$ext] = get_extension_funcs($ext); } print_r($a); $ diff old new + [528] => dl + [529] => cli_set_process_title + [530] => cli_get_process_title Minor change, when a extension replace a core function, Ex: memprof use const zend_function_entry memprof_function_overrides[] = { PHP_FALIAS(memory_get_peak_usage, memprof_memory_get_peak_usage, arginfo_memprof_memory_get_usage) PHP_FALIAS(memory_get_usage, memprof_memory_get_usage, arginfo_memprof_memory_get_usage) PHP_FE_END /* Must be the last line in memprof_function_overrides[] */ }; With this patch the "memory_get_peak_usage" will be reported as part of "memprof" extension instead of "standard", but I think this seems also correct (another effect of the bug) Comments ? Remi. --------------060901010705090003040904 Content-Type: text/plain; charset=UTF-8; name="get_extension_funcs.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="get_extension_funcs.txt" Lyoge3t7IHByb3RvIGFycmF5IGdldF9leHRlbnNpb25fZnVuY3Moc3RyaW5nIGV4dGVuc2lv bl9uYW1lKQogICBSZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIG5hbWVzIG9mIGZ1bmN0aW9u cyBiZWxvbmdpbmcgdG8gdGhlIG5hbWVkIGV4dGVuc2lvbiAqLwpaRU5EX0ZVTkNUSU9OKGdl dF9leHRlbnNpb25fZnVuY3MpCnsKCWNoYXIgKmV4dGVuc2lvbl9uYW1lLCAqbGNuYW1lOwoJ aW50IGV4dGVuc2lvbl9uYW1lX2xlbiwgYXJyYXk7Cgl6ZW5kX21vZHVsZV9lbnRyeSAqbW9k dWxlOwoJSGFzaFBvc2l0aW9uIGl0ZXJhdG9yOwoJemVuZF9pbnRlcm5hbF9mdW5jdGlvbiAq emlmOwoJaWYgKHplbmRfcGFyc2VfcGFyYW1ldGVycyhaRU5EX05VTV9BUkdTKCkgVFNSTUxT X0NDLCAicyIsICZleHRlbnNpb25fbmFtZSwgJmV4dGVuc2lvbl9uYW1lX2xlbikgPT0gRkFJ TFVSRSkgewoJCXJldHVybjsKCX0KCWlmIChzdHJuY2FzZWNtcChleHRlbnNpb25fbmFtZSwg InplbmQiLCBzaXplb2YoInplbmQiKSkpIHsKCQlsY25hbWUgPSB6ZW5kX3N0cl90b2xvd2Vy X2R1cChleHRlbnNpb25fbmFtZSwgZXh0ZW5zaW9uX25hbWVfbGVuKTsKCX0gZWxzZSB7CgkJ bGNuYW1lID0gZXN0cmR1cCgiY29yZSIpOwoJfQoJaWYgKHplbmRfaGFzaF9maW5kKCZtb2R1 bGVfcmVnaXN0cnksIGxjbmFtZSwKCQlleHRlbnNpb25fbmFtZV9sZW4rMSwgKHZvaWQqKikm bW9kdWxlKSA9PSBGQUlMVVJFKSB7CgkJZWZyZWUobGNuYW1lKTsKCQlSRVRVUk5fRkFMU0U7 Cgl9CgoJemVuZF9oYXNoX2ludGVybmFsX3BvaW50ZXJfcmVzZXRfZXgoQ0coZnVuY3Rpb25f dGFibGUpLCAmaXRlcmF0b3IpOwoJaWYgKG1vZHVsZS0+ZnVuY3Rpb25zKSB7CgkJLyogYXZv aWQgQkMgYnJlYWssIGlmIGZ1bmN0aW9ucyBsaXN0IGlzIGVtcHR5LCB3aWxsIHJldHVybiBh biBlbXB0eSBhcnJheSAqLwoJCWFycmF5X2luaXQocmV0dXJuX3ZhbHVlKTsKCQlhcnJheSA9 IDE7Cgl9IGVsc2UgewoJCWFycmF5ID0gMDsKCX0KCXdoaWxlICh6ZW5kX2hhc2hfZ2V0X2N1 cnJlbnRfZGF0YV9leChDRyhmdW5jdGlvbl90YWJsZSksICh2b2lkICoqKSAmemlmLCAmaXRl cmF0b3IpID09IFNVQ0NFU1MpIHsKCQlpZiAoemlmLT5tb2R1bGUgPT0gbW9kdWxlKSB7CgkJ CWlmICghYXJyYXkpIHsKCQkJCWFycmF5X2luaXQocmV0dXJuX3ZhbHVlKTsKCQkJCWFycmF5 ID0gMTsKCQkJfQoJCQlhZGRfbmV4dF9pbmRleF9zdHJpbmcocmV0dXJuX3ZhbHVlLCB6aWYt PmZ1bmN0aW9uX25hbWUsIDEpOwoJCX0KCQl6ZW5kX2hhc2hfbW92ZV9mb3J3YXJkX2V4KENH KGZ1bmN0aW9uX3RhYmxlKSwgJml0ZXJhdG9yKTsKCX0KCgllZnJlZShsY25hbWUpOwoKCWlm ICghYXJyYXkpIHsKCQlSRVRVUk5fRkFMU0U7Cgl9Cn0KLyogfX19ICovCgo= --------------060901010705090003040904--