mirror of
https://github.com/php/php-src.git
synced 2026-03-26 17:22:15 +01:00
MFH: Make html_entity_decode() 15-20% faster by avoiding pointless string
duplication.
This commit is contained in:
@@ -940,9 +940,11 @@ PHPAPI char *php_unescape_html_entities(unsigned char *old, int oldlen, int *new
|
||||
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 @@ PHPAPI char *php_unescape_html_entities(unsigned char *old, int oldlen, int *new
|
||||
|
||||
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 & "&" */
|
||||
|
||||
Reference in New Issue
Block a user