From: Mathias Hasselmann Date: Mon, 18 Jun 2007 21:14:49 +0000 (+0000) Subject: Restore old behaviour of g_string_append_vprintf: g_vasprintf seems to be X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=90240bf12d13b7a4dde92d06588e9bfb55aef595;p=dana%2Fcg-glib.git Restore old behaviour of g_string_append_vprintf: g_vasprintf seems to be 2007-06-18 Mathias Hasselmann * glib/gstring.c: Restore old behaviour of g_string_append_vprintf: g_vasprintf seems to be faster than g_printf_string_upper_bound (#57693). svn path=/trunk/; revision=5581 --- diff --git a/ChangeLog b/ChangeLog index ab8611fa..0941ec09 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-06-18 Mathias Hasselmann + + * glib/gstring.c: Restore old behaviour of + g_string_append_vprintf: g_vasprintf seems to be faster + than g_printf_string_upper_bound (#57693). + 2007-06-18 Matthias Clasen * glib/gutils.c (g_get_home_dir): Add some motivation. diff --git a/glib/gstring.c b/glib/gstring.c index ed15223d..f8cc7da3 100644 --- a/glib/gstring.c +++ b/glib/gstring.c @@ -1278,19 +1278,15 @@ g_string_append_vprintf (GString *string, const gchar *fmt, va_list args) { - va_list sneak; - gsize length; - + gchar *buffer; + gint length; + g_return_if_fail (string != NULL); g_return_if_fail (fmt != NULL); - G_VA_COPY (sneak, args); - length = g_printf_string_upper_bound (fmt, sneak); - va_end (sneak); - - g_string_maybe_expand (string, length); - length = g_vsnprintf (string->str + string->len, length, fmt, args); - string->len += length; + length = g_vasprintf (&buffer, fmt, args); + g_string_append_len (string, buffer, length); + g_free (buffer); } /**