Re: [PATCH] 1 small optimization and 1 cleanup

From: Date: Thu, 14 Dec 2006 17:21:56 +0000
Subject: Re: [PATCH] 1 small optimization and 1 cleanup
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-26959@lists.php.net to get a copy of this message
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.
well about the pcre one I could argument that your patch makes the code bigger and potentially slower :P (due to cache misses) Anyway, I do trust the compiler to do such kind of trivial optimizations..
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; } /* }}} */


« previous php.internals (#26959) next »