Use ui_file_as_string in gdb/ui-out.c
authorPedro Alves <palves@redhat.com>
Tue, 8 Nov 2016 15:26:44 +0000 (15:26 +0000)
committerPedro Alves <palves@redhat.com>
Tue, 8 Nov 2016 15:26:44 +0000 (15:26 +0000)
gdb/ChangeLog:
2016-11-08  Pedro Alves  <palves@redhat.com>

* ui-out.c (ui_out_field_stream): Use ui_file_as_string.

gdb/ChangeLog
gdb/ui-out.c

index 2760580..7855776 100644 (file)
@@ -1,5 +1,9 @@
 2016-11-08  Pedro Alves  <palves@redhat.com>
 
+       * ui-out.c (ui_out_field_stream): Use ui_file_as_string.
+
+2016-11-08  Pedro Alves  <palves@redhat.com>
+
        * ada-valprint.c (ada_print_floating): Use ui_file_as_string and
        std::string.
 
index 0eaa48f..60d18ee 100644 (file)
@@ -425,16 +425,13 @@ ui_out_field_stream (struct ui_out *uiout,
                     const char *fldname,
                     struct ui_file *stream)
 {
-  long length;
-  char *buffer = ui_file_xstrdup (stream, &length);
-  struct cleanup *old_cleanup = make_cleanup (xfree, buffer);
+  std::string buffer = ui_file_as_string (stream);
 
-  if (length > 0)
-    ui_out_field_string (uiout, fldname, buffer);
+  if (!buffer.empty ())
+    ui_out_field_string (uiout, fldname, buffer.c_str ());
   else
     ui_out_field_skip (uiout, fldname);
   ui_file_rewind (stream);
-  do_cleanups (old_cleanup);
 }
 
 /* Used to omit a field.  */