From 467dc1e2ea5a8b300b61194aa8565829ce7d65bc Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Wed, 22 Aug 2018 10:55:28 -0400 Subject: [PATCH] Replace xstrvprintf usages with string_vprintf Most usages of xstrvprintf in GDB can be replaced with string_vprintf, removing some manual memory management. gdb/ChangeLog: * guile/scm-string.c (gdbscm_scm_from_printf): Use string_vprintf. * guile/scm-utils.c (gdbscm_printf): Likewise. * serial.c (serial_printf): Likewise. * xml-support.c (gdb_xml_parser::vdebug): Likewise. --- gdb/ChangeLog | 8 ++++++++ gdb/guile/scm-string.c | 6 ++---- gdb/guile/scm-utils.c | 6 ++---- gdb/serial.c | 8 +++----- gdb/xml-support.c | 8 +++----- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2cb128c06e..cde7490d1d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2018-08-22 Simon Marchi + + * guile/scm-string.c (gdbscm_scm_from_printf): Use + string_vprintf. + * guile/scm-utils.c (gdbscm_printf): Likewise. + * serial.c (serial_printf): Likewise. + * xml-support.c (gdb_xml_parser::vdebug): Likewise. + 2018-08-22 Jan Vrany * stack.c (print_frame): Print frame architecture when printing on diff --git a/gdb/guile/scm-string.c b/gdb/guile/scm-string.c index 5779509197..d09a54d80b 100644 --- a/gdb/guile/scm-string.c +++ b/gdb/guile/scm-string.c @@ -62,14 +62,12 @@ SCM gdbscm_scm_from_printf (const char *format, ...) { va_list args; - char *string; SCM result; va_start (args, format); - string = xstrvprintf (format, args); + std::string string = string_vprintf (format, args); va_end (args); - result = scm_from_latin1_string (string); - xfree (string); + result = scm_from_latin1_string (string.c_str ()); return result; } diff --git a/gdb/guile/scm-utils.c b/gdb/guile/scm-utils.c index c514c829e6..f8603a7c0d 100644 --- a/gdb/guile/scm-utils.c +++ b/gdb/guile/scm-utils.c @@ -79,13 +79,11 @@ void gdbscm_printf (SCM port, const char *format, ...) { va_list args; - char *string; va_start (args, format); - string = xstrvprintf (format, args); + std::string string = string_vprintf (format, args); va_end (args); - scm_puts (string, port); - xfree (string); + scm_puts (string.c_str (), port); } /* Utility for calling from gdb to "display" an SCM object. */ diff --git a/gdb/serial.c b/gdb/serial.c index 0239fc8337..fb2b212918 100644 --- a/gdb/serial.c +++ b/gdb/serial.c @@ -434,16 +434,14 @@ serial_write (struct serial *scb, const void *buf, size_t count) } void -serial_printf (struct serial *desc, const char *format,...) +serial_printf (struct serial *desc, const char *format, ...) { va_list args; - char *buf; va_start (args, format); - buf = xstrvprintf (format, args); - serial_write (desc, buf, strlen (buf)); + std::string buf = string_vprintf (format, args); + serial_write (desc, buf.c_str (), buf.length ()); - xfree (buf); va_end (args); } diff --git a/gdb/xml-support.c b/gdb/xml-support.c index 3775e2c8c7..7c36ca3550 100644 --- a/gdb/xml-support.c +++ b/gdb/xml-support.c @@ -179,16 +179,14 @@ void gdb_xml_parser::vdebug (const char *format, va_list ap) { int line = XML_GetCurrentLineNumber (m_expat_parser); - char *message; - message = xstrvprintf (format, ap); + std::string message = string_vprintf (format, ap); if (line) fprintf_unfiltered (gdb_stderr, "%s (line %d): %s\n", - m_name, line, message); + m_name, line, message.c_str ()); else fprintf_unfiltered (gdb_stderr, "%s: %s\n", - m_name, message); - xfree (message); + m_name, message.c_str ()); } void