gdb: make inferior::terminal a unique ptr

This changes the inferior::terminal field to be a unique pointer, so its
deallocation is automatically managed.

gdb/ChangeLog:

	* inferior.h (struct inferior) <terminal>: Change type to
	gdb::unique_xmalloc_ptr<char>.
	* inferior.c (inferior::~inferior): Don't free inf->terminal.
	* infcmd.c (set_inferior_io_terminal): Don't free terminal
	field, adjust to unique pointer.
	(get_inferior_io_terminal): Adjust to unique pointer.

Change-Id: Iedb6459b4f9eeae812b0cb9d514b5707d5107cdb
This commit is contained in:
Simon Marchi
2020-06-25 14:44:13 -04:00
parent d73be61168
commit 277474eea0
4 changed files with 13 additions and 6 deletions

View File

@@ -108,10 +108,8 @@ int stopped_by_random_signal;
void
set_inferior_io_terminal (const char *terminal_name)
{
xfree (current_inferior ()->terminal);
if (terminal_name != NULL && *terminal_name != '\0')
current_inferior ()->terminal = xstrdup (terminal_name);
current_inferior ()->terminal.reset (xstrdup (terminal_name));
else
current_inferior ()->terminal = NULL;
}
@@ -119,7 +117,7 @@ set_inferior_io_terminal (const char *terminal_name)
const char *
get_inferior_io_terminal (void)
{
return current_inferior ()->terminal;
return current_inferior ()->terminal.get ();
}
static void