gdb: have mi_out_new return std::unique_ptr

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>
This commit is contained in:
Andrew Burgess
2023-08-11 11:39:43 +01:00
parent 0b72cde372
commit e200b179ce
4 changed files with 7 additions and 7 deletions

View 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);

View 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;

View 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;
}

View 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);