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

Reply via email to