diff options
Diffstat (limited to 'gdbsupport')
-rw-r--r-- | gdbsupport/common-utils.cc | 9 | ||||
-rw-r--r-- | gdbsupport/common-utils.h | 6 |
2 files changed, 8 insertions, 7 deletions
diff --git a/gdbsupport/common-utils.cc b/gdbsupport/common-utils.cc index 7a84345..42bce36 100644 --- a/gdbsupport/common-utils.cc +++ b/gdbsupport/common-utils.cc @@ -32,19 +32,18 @@ xzalloc (size_t size) /* Like asprintf/vasprintf but get an internal_error if the call fails. */ -char * +gdb::unique_xmalloc_ptr<char> xstrprintf (const char *format, ...) { - char *ret; va_list args; va_start (args, format); - ret = xstrvprintf (format, args); + gdb::unique_xmalloc_ptr<char> ret = xstrvprintf (format, args); va_end (args); return ret; } -char * +gdb::unique_xmalloc_ptr<char> xstrvprintf (const char *format, va_list ap) { char *ret = NULL; @@ -56,7 +55,7 @@ xstrvprintf (const char *format, va_list ap) happen, but just to be sure. */ if (ret == NULL || status < 0) internal_error (__FILE__, __LINE__, _("vasprintf call failed")); - return ret; + return gdb::unique_xmalloc_ptr<char> (ret); } int diff --git a/gdbsupport/common-utils.h b/gdbsupport/common-utils.h index 4a75e67..1e90a5c 100644 --- a/gdbsupport/common-utils.h +++ b/gdbsupport/common-utils.h @@ -23,6 +23,7 @@ #include <string> #include <vector> #include "gdbsupport/byte-vector.h" +#include "gdbsupport/gdb_unique_ptr.h" #include "poison.h" @@ -54,8 +55,9 @@ void *xzalloc (size_t); /* Like asprintf and vasprintf, but return the string, throw an error if no memory. */ -char *xstrprintf (const char *format, ...) ATTRIBUTE_PRINTF (1, 2); -char *xstrvprintf (const char *format, va_list ap) +gdb::unique_xmalloc_ptr<char> xstrprintf (const char *format, ...) + ATTRIBUTE_PRINTF (1, 2); +gdb::unique_xmalloc_ptr<char> xstrvprintf (const char *format, va_list ap) ATTRIBUTE_PRINTF (1, 0); /* Like snprintf, but throw an error if the output buffer is too small. */ |