diff options
author | Marcus Boerger <helly@php.net> | 2003-08-31 09:35:54 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2003-08-31 09:35:54 +0000 |
commit | d45fd8a1b102ed18dc417132df846f4c7cd80ae5 (patch) | |
tree | 4a22a598e2efd936b11567307af6b9b23bfe3040 /Zend/zend_default_classes.c | |
parent | c4b0b8c26237fb1e533446ff78878cb8c0be5810 (diff) | |
download | php-git-d45fd8a1b102ed18dc417132df846f4c7cd80ae5.tar.gz |
Make vspprintf available as zend utility function. Use it in exception output.
Diffstat (limited to 'Zend/zend_default_classes.c')
-rw-r--r-- | Zend/zend_default_classes.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/Zend/zend_default_classes.c b/Zend/zend_default_classes.c index 3083fe77c8..a57ab4a2d2 100644 --- a/Zend/zend_default_classes.c +++ b/Zend/zend_default_classes.c @@ -232,7 +232,7 @@ static int _build_trace_string(zval **frame, int num_args, va_list args, zend_ha len = va_arg(args, int*); num = va_arg(args, int*); - s_tmp = emalloc(Z_STRLEN_PP(file) + MAX_LENGTH_OF_LONG + 2 + 1); + s_tmp = emalloc(1 + MAX_LENGTH_OF_LONG + 1 + 1); sprintf(s_tmp, "#%d ", (*num)++); TRACE_APPEND_STRL(s_tmp, strlen(s_tmp)); efree(s_tmp); @@ -358,18 +358,11 @@ ZEND_API void zend_throw_exception_ex(zend_class_entry *exception_ce, long code { zval *ex; va_list arg; - -#ifdef _GNU_SOURCE char *message; + va_start(arg, format); - vasprintf(message, format, arg); - va_end(arg); -#else - char message[1024]; - va_start(arg, format); - vsnprintf(message, sizeof(message), format, arg); + zend_vspprintf(&message, 0, format, arg); va_end(arg); -#endif MAKE_STD_ZVAL(ex); if (exception_ce) { @@ -390,9 +383,7 @@ ZEND_API void zend_throw_exception_ex(zend_class_entry *exception_ce, long code zend_update_property_long(exception_ce, ex, "code", sizeof("code")-1, code TSRMLS_CC); } -#ifdef _GNU_SOURCE - free(message); -#endif + efree(message); EG(exception) = ex; } |