Replace xstrvprintf usages with string_vprintf
authorSimon Marchi <simon.marchi@polymtl.ca>
Wed, 22 Aug 2018 14:55:28 +0000 (10:55 -0400)
committerSimon Marchi <simon.marchi@ericsson.com>
Wed, 22 Aug 2018 14:55:28 +0000 (10:55 -0400)
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
gdb/guile/scm-string.c
gdb/guile/scm-utils.c
gdb/serial.c
gdb/xml-support.c

index 2cb128c06eb8ac762705af9d9770d02279fe6ca5..cde7490d1d4d59748fdad214a1803aa97c9d17a7 100644 (file)
@@ -1,3 +1,11 @@
+2018-08-22  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * 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  <jan.vrany@fit.cvut.cz>
 
        * stack.c (print_frame): Print frame architecture when printing on
index 5779509197ff0abb940fc107d62182b33be5302e..d09a54d80b4d29e5f43dce6bf7ae4e1a9f89610d 100644 (file)
@@ -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;
 }
index c514c829e6372451bcba04fb3d7cc4f10f6cdad3..f8603a7c0dbcf9e03a10052eb730a59eed9ba71d 100644 (file)
@@ -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.  */
index 0239fc833712518d5682e4b874c2c7fab3938121..fb2b212918cc778ca07407298212b9445013a928 100644 (file)
@@ -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);
 }
 
index 3775e2c8c78863aa0afe6ac4948af6d45342bc59..7c36ca3550206c85c46cc952887f34ffe4f3ec1a 100644 (file)
@@ -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