summaryrefslogtreecommitdiff
path: root/Zend/zend_default_classes.c
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2003-08-31 09:35:54 +0000
committerMarcus Boerger <helly@php.net>2003-08-31 09:35:54 +0000
commitd45fd8a1b102ed18dc417132df846f4c7cd80ae5 (patch)
tree4a22a598e2efd936b11567307af6b9b23bfe3040 /Zend/zend_default_classes.c
parentc4b0b8c26237fb1e533446ff78878cb8c0be5810 (diff)
downloadphp-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.c17
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;
}