}
}
- maxlen = 2 * oldlen;
- if (maxlen < 128)
- maxlen = 128;
+ if (oldlen < 64) {
+ maxlen = 128;
+ } else {
+ maxlen = 2 * oldlen;
+ }
replaced = emalloc(maxlen);
len = 0;
cursor = 0;
/* guarantee we have at least 40 bytes to write.
* In HTML5, entities may take up to 33 bytes */
- if (len + 40 > maxlen)
+ if (len + 40 > maxlen) {
replaced = erealloc(replaced, maxlen += 128);
+ }
if (status == FAILURE) {
/* invalid MB sequence */
continue;
} else {
efree(replaced);
- if(!PG(display_errors)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid multibyte sequence in argument");
- }
*newlen = 0;
return STR_EMPTY_ALLOC();
}