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; } -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php