diff options
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/infcmd.c | 6 | ||||
-rw-r--r-- | gdb/inferior.c | 1 | ||||
-rw-r--r-- | gdb/inferior.h | 3 |
4 files changed, 13 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0a36c6b..d9b6a49 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2020-06-25 Simon Marchi <simon.marchi@efficios.com> + + * 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. + 2020-06-25 Andrew Burgess <andrew.burgess@embecosm.com> * riscv-tdep.c (riscv_print_registers_info): Loop over all diff --git a/gdb/infcmd.c b/gdb/infcmd.c index 42b050d..48d6a91 100644 --- a/gdb/infcmd.c +++ b/gdb/infcmd.c @@ -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 diff --git a/gdb/inferior.c b/gdb/inferior.c index 2f4ced0..d3bece0 100644 --- a/gdb/inferior.c +++ b/gdb/inferior.c @@ -79,7 +79,6 @@ inferior::~inferior () discard_all_inferior_continuations (inf); inferior_free_data (inf); xfree (inf->args); - xfree (inf->terminal); target_desc_info_free (inf->tdesc_info); } diff --git a/gdb/inferior.h b/gdb/inferior.h index 95af474..5002b0b 100644 --- a/gdb/inferior.h +++ b/gdb/inferior.h @@ -52,6 +52,7 @@ struct thread_info; #include "symfile-add-flags.h" #include "gdbsupport/refcounted-object.h" #include "gdbsupport/forward-scope-exit.h" +#include "gdbsupport/gdb_unique_ptr.h" #include "gdbsupport/common-inferior.h" #include "gdbthread.h" @@ -456,7 +457,7 @@ public: gdb::unique_xmalloc_ptr<char> cwd; /* The name of terminal device to use for I/O. */ - char *terminal = NULL; + gdb::unique_xmalloc_ptr<char> terminal; /* The terminal state as set by the last target_terminal::terminal_* call. */ |