Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:26945 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 7680 invoked by uid 1010); 14 Dec 2006 01:21:38 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 7664 invoked from network); 14 Dec 2006 01:21:38 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 14 Dec 2006 01:21:38 -0000 X-Host-Fingerprint: 83.160.219.156 korving.demon.nl Received: from [83.160.219.156] ([83.160.219.156:2379] helo=localhost.localdomain) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 10/23-32177-CA640854 for ; Wed, 13 Dec 2006 13:30:39 -0500 Message-ID: <10.23.32177.CA640854@pb1.pair.com> To: internals@lists.php.net Date: Wed, 13 Dec 2006 19:28:59 +0100 Lines: 76 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1437 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 X-Posted-By: 83.160.219.156 Subject: [PATCH] 1 small optimization and 1 cleanup From: r.korving@xit.nl ("Ron Korving") Hi, Below are 2 patches for the latest 5.2. The first patch rewrites pcre_get_compiled_regex_ex() in ext/pcre/php_pcre.c from line 417, saving up to 3 comparison statements (?:). The second patch removes a pointless statement (setting a local variable right before a return statement) from json_determine_array_type() in ext/json/json.c on line 92. Please review and commit if valid. Kind regards, Ron Korving Index: ext/pcre/php_pcre.c =================================================================== RCS file: /repository/php-src/ext/pcre/php_pcre.c,v retrieving revision 1.209 diff -u -r1.209 php_pcre.c --- ext/pcre/php_pcre.c 10 Oct 2006 12:43:34 -0000 1.209 +++ ext/pcre/php_pcre.c 13 Dec 2006 18:22:07 -0000 @@ -417,18 +417,21 @@ PHPAPI pcre* pcre_get_compiled_regex_ex(char *regex, pcre_extra **extra, int *preg_options, int *compile_options TSRMLS_DC) { pcre_cache_entry * pce = pcre_get_compiled_regex_cache(regex, strlen(regex) TSRMLS_CC); - - if (extra) { - *extra = pce ? pce->extra : NULL; - } - if (preg_options) { - *preg_options = pce ? pce->preg_options : 0; + + if (pce) + { + if (extra) *extra = pce->extra; + if (preg_options) *preg_options = pce->preg_options; + if (compile_options) *compile_options = pce->compile_options; + return pce->re; } - if (compile_options) { - *compile_options = pce ? pce->compile_options : 0; + else + { + if (extra) *extra = NULL; + if (preg_options) *preg_options = 0; + if (compile_options) *compile_options = 0; + return NULL; } - - return pce ? pce->re : NULL; } /* }}} */ Index: ext/json/json.c =================================================================== RCS file: /repository/php-src/ext/json/json.c,v retrieving revision 1.19 diff -u -r1.19 json.c --- ext/json/json.c 19 Oct 2006 20:24:25 -0000 1.19 +++ ext/json/json.c 13 Dec 2006 18:24:55 -0000 @@ -89,7 +89,6 @@ if (Z_TYPE_PP(val) == IS_ARRAY) { myht = HASH_OF(*val); } else { - myht = Z_OBJPROP_PP(val); return 1; }