Browse Source

Using zend_spprintf should be faster here

PEAR_1_4DEV
Marcus Boerger 23 years ago
parent
commit
ade319ac54
  1. 19
      Zend/zend_reflection_api.c
  2. 19
      ext/reflection/php_reflection.c

19
Zend/zend_reflection_api.c

@ -80,17 +80,18 @@ string *string_printf(string *str, const char *format, ...)
{
int n;
va_list arg;
va_start(arg, format);
n = vsnprintf(str->string + str->len - 1, str->alloced - str->len, format, arg);
if (n > str->alloced - str->len) {
while (n + str->len > str->alloced ) {
str->alloced *= 2;
}
str->string = erealloc(str->string, str->alloced + 1);
n = vsnprintf(str->string + str->len - 1, str->alloced - str->len, format, arg);
char *s_tmp;
va_start(arg, format);
n = zend_vspprintf(&s_tmp, 0, format, arg);
if (n) {
str->alloced += n;
str->string = erealloc(str->string, str->alloced);
memcpy(str->string + str->len - 1, s_tmp, n);
str->len += n;
}
efree(s_tmp);
va_end(arg);
str->len += n;
return str;
}

19
ext/reflection/php_reflection.c

@ -80,17 +80,18 @@ string *string_printf(string *str, const char *format, ...)
{
int n;
va_list arg;
va_start(arg, format);
n = vsnprintf(str->string + str->len - 1, str->alloced - str->len, format, arg);
if (n > str->alloced - str->len) {
while (n + str->len > str->alloced ) {
str->alloced *= 2;
}
str->string = erealloc(str->string, str->alloced + 1);
n = vsnprintf(str->string + str->len - 1, str->alloced - str->len, format, arg);
char *s_tmp;
va_start(arg, format);
n = zend_vspprintf(&s_tmp, 0, format, arg);
if (n) {
str->alloced += n;
str->string = erealloc(str->string, str->alloced);
memcpy(str->string + str->len - 1, s_tmp, n);
str->len += n;
}
efree(s_tmp);
va_end(arg);
str->len += n;
return str;
}

Loading…
Cancel
Save