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 & "&" */
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php