gdb: have mi_out_new return std::unique_ptr
authorAndrew Burgess <aburgess@redhat.com>
Fri, 11 Aug 2023 10:39:43 +0000 (11:39 +0100)
committerAndrew Burgess <aburgess@redhat.com>
Wed, 23 Aug 2023 08:50:31 +0000 (09:50 +0100)
Have the mi_out_new function return a std::unique_ptr instead of a raw
pointer.  Update the two uses of mi_out_new.

There should be no user visible changes after this commit.

Approved-By: Tom Tromey <tom@tromey.com>
gdb/mi/mi-interp.c
gdb/mi/mi-main.c
gdb/mi/mi-out.c
gdb/mi/mi-out.h

index 0e51c884a651a35b5811e2c7c0ab6b25ccf90663..a7fcf17e51c2fb44e10f0d570c893d084f1a5634 100644 (file)
@@ -95,7 +95,7 @@ mi_interp::init (bool top_level)
   mi->log = mi->err;
   mi->targ = new mi_console_file (mi->raw_stdout, "@", '"');
   mi->event_channel = new mi_console_file (mi->raw_stdout, "=", 0);
-  mi->mi_uiout = mi_out_new (name ());
+  mi->mi_uiout = mi_out_new (name ()).release ();
   gdb_assert (mi->mi_uiout != nullptr);
   mi->cli_uiout = new cli_ui_out (mi->out);
 
index b76940e740324493de8cf28e599650de300be786..5a00457bf5f6b1a23e666f86ed1aecf18aabe2ca 100644 (file)
@@ -2206,7 +2206,7 @@ mi_load_progress (const char *section_name,
      which means uiout may not be correct.  Fix it for the duration
      of this function.  */
 
-  std::unique_ptr<ui_out> uiout (mi_out_new (current_interpreter ()->name ()));
+  auto uiout = mi_out_new (current_interpreter ()->name ());
   if (uiout == nullptr)
     return;
 
index 29a416a426df3a4e82be9da02eb87c3819a748c5..bbd21287b2878882d91b3d723321f251cef656fa 100644 (file)
@@ -336,17 +336,17 @@ mi_ui_out::~mi_ui_out ()
 
 /* See mi/mi-out.h.  */
 
-mi_ui_out *
+std::unique_ptr<mi_ui_out>
 mi_out_new (const char *mi_version)
 {
   if (streq (mi_version, INTERP_MI4) ||  streq (mi_version, INTERP_MI))
-    return new mi_ui_out (4);
+    return gdb::make_unique<mi_ui_out> (4);
 
   if (streq (mi_version, INTERP_MI3))
-    return new mi_ui_out (3);
+    return gdb::make_unique<mi_ui_out> (3);
 
   if (streq (mi_version, INTERP_MI2))
-    return new mi_ui_out (2);
+    return gdb::make_unique<mi_ui_out> (2);
 
   return nullptr;
 }
index 10c9f8a45854be839532eec90ae6bc5c599c106d..0dd7479a52f55d91704a277ff99d07e63b05d2ed 100644 (file)
@@ -143,7 +143,7 @@ private:
    to one of the INTERP_MI* constants (see interps.h).
 
    Return nullptr if an invalid version is provided.  */
-mi_ui_out *mi_out_new (const char *mi_version);
+std::unique_ptr<mi_ui_out> mi_out_new (const char *mi_version);
 
 void mi_out_put (ui_out *uiout, struct ui_file *stream);
 void mi_out_rewind (ui_out *uiout);