cvs: php-src(PHP_5_0) /ext/standard html.c
| From: | Ilia Alshanetsky | Date: | Sun, 06 Mar 2005 19:37:17 +0000 |
| Subject: | cvs: php-src(PHP_5_0) /ext/standard html.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-30737@lists.php.net to get a copy of this message | ||
iliaa Sun Mar 6 14:37:17 2005 EDT
Modified files: (Branch: PHP_5_0)
/php-src/ext/standard html.c
Log:
MFH: Make html_entity_decode() 15-20% faster by avoiding pointless string
duplication.
http://cvs.php.net/diff.php/php-src/ext/standard/html.c?r1=1.97.2.4&r2=1.97.2.5&ty=u
Index: php-src/ext/standard/html.c
diff -u php-src/ext/standard/html.c:1.97.2.4 php-src/ext/standard/html.c:1.97.2.5
--- php-src/ext/standard/html.c:1.97.2.4 Tue Jan 11 15:59:10 2005
+++ php-src/ext/standard/html.c Sun Mar 6 14:37:17 2005
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: html.c,v 1.97.2.4 2005/01/11 20:59:10 moriyoshi Exp $ */
+/* $Id: html.c,v 1.97.2.5 2005/03/06 19:37:17 iliaa Exp $ */
/*
* HTML entity resources:
@@ -940,9 +940,11 @@
return 0;
}
- replaced = php_str_to_str(ret, retlen, entity, entity_length, replacement, replacement_len,
&retlen);
- efree(ret);
- ret = replaced;
+ if (php_memnstr(ret, entity, entity_length, ret+retlen)) {
+ replaced = php_str_to_str(ret, retlen, entity, entity_length, replacement, replacement_len,
&retlen);
+ efree(ret);
+ ret = replaced;
+ }
}
}
}
@@ -954,10 +956,12 @@
replacement[0] = (unsigned char)basic_entities[j].charcode;
replacement[1] = '\0';
-
- replaced = php_str_to_str(ret, retlen, basic_entities[j].entity, basic_entities[j].entitylen,
replacement, 1, &retlen);
- efree(ret);
- ret = replaced;
+
+ if (php_memnstr(ret, basic_entities[j].entity, basic_entities[j].entitylen, ret+retlen)) {
+ replaced = php_str_to_str(ret, retlen, basic_entities[j].entity, basic_entities[j].entitylen,
replacement, 1, &retlen);
+ efree(ret);
+ ret = replaced;
+ }
}
/* replace numeric entities & "&" */