From d45fd8a1b102ed18dc417132df846f4c7cd80ae5 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Sun, 31 Aug 2003 09:35:54 +0000 Subject: Make vspprintf available as zend utility function. Use it in exception output. --- Zend/zend_default_classes.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) (limited to 'Zend/zend_default_classes.c') 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; } -- cgit v1.2.1