From 067d0e476abe42f1e290039cb903928080e90d8d Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Sat, 2 Oct 2010 07:30:38 +0000 Subject: implemented graph printing Signed-off-by: Csaba Henk Signed-off-by: Vijay Bellur BUG: 1750 (clean up volgen) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1750 --- libglusterfs/src/mem-pool.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'libglusterfs/src/mem-pool.c') diff --git a/libglusterfs/src/mem-pool.c b/libglusterfs/src/mem-pool.c index f266ce61f..1223b3711 100644 --- a/libglusterfs/src/mem-pool.c +++ b/libglusterfs/src/mem-pool.c @@ -197,9 +197,9 @@ __gf_realloc (void *ptr, size_t size) } int -gf_asprintf (char **string_ptr, const char *format, ...) +gf_vasprintf (char **string_ptr, const char *format, va_list arg) { - va_list arg; + va_list arg_save; char *str = NULL; int size = 0; int rv = 0; @@ -207,13 +207,12 @@ gf_asprintf (char **string_ptr, const char *format, ...) if (!string_ptr || !format) return -1; - va_start (arg, format); + va_copy (arg_save, arg); + size = vsnprintf (NULL, 0, format, arg); size++; - va_start (arg, format); str = GF_MALLOC (size, gf_common_mt_asprintf); if (str == NULL) { - va_end (arg); /* * Strictly speaking, GNU asprintf doesn't do this, * but the caller isn't checking the return value. @@ -222,13 +221,25 @@ gf_asprintf (char **string_ptr, const char *format, ...) "failed to allocate memory"); return -1; } - rv = vsnprintf( str, size, format, arg); - va_end (arg); + rv = vsnprintf (str, size, format, arg_save); *string_ptr = str; return (rv); } +int +gf_asprintf (char **string_ptr, const char *format, ...) +{ + va_list arg; + int rv = 0; + + va_start (arg, format); + rv = gf_vasprintf (string_ptr, format, arg); + va_end (arg); + + return rv; +} + void __gf_free (void *free_ptr) { -- cgit