If you have good reason to believe it will be slower, then naturaly we
should forget about that patch. I don't know much about cache hitrates. The
other patch removes bogus code, which should be good I reckon.
If you still want the patch for PCRE though, a patch with braces follows
below.
- Ron
### Eclipse Workspace Patch 1.0
#P php5
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 14 Dec 2006 20:19:38 -0000
@@ -417,18 +417,35 @@
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;
}
/* }}} */
""Nuno Lopes"" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> > 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;
> > }
> > /* }}} */
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php