gdb: make inferior::args a unique_xmalloc_ptr

Use unique_xmalloc_ptr to avoid manual memory management.

gdb/ChangeLog:

	* inferior.h (class inferior) <args>: Change type to
	unique_xmalloc_ptr.
	* inferior.c (inferior::~inferior): Don't free args.
	* infcmd.c (get_inferior_args): Adjust.
	(set_inferior_args): Adjust.

Change-Id: I96300e59eb2faf2d80660416a8f5694d243a944e
This commit is contained in:
Simon Marchi 2021-05-06 13:16:26 -04:00
parent 482155e609
commit ec66d6ea54
4 changed files with 16 additions and 6 deletions

View File

@ -1,3 +1,11 @@
2021-05-06 Simon Marchi <simon.marchi@polymtl.ca>
* inferior.h (class inferior) <args>: Change type to
unique_xmalloc_ptr.
* inferior.c (inferior::~inferior): Don't free args.
* infcmd.c (get_inferior_args): Adjust.
(set_inferior_args): Adjust.
2021-05-06 Andrew Burgess <andrew.burgess@embecosm.com>
* guile/scm-breakpoint.c (bpscm_print_breakpoint_smob): Only print

View File

@ -136,9 +136,9 @@ get_inferior_args (void)
}
if (current_inferior ()->args == NULL)
current_inferior ()->args = xstrdup ("");
current_inferior ()->args = make_unique_xstrdup ("");
return current_inferior ()->args;
return current_inferior ()->args.get ();
}
/* Set the arguments for the current inferior. Ownership of
@ -147,8 +147,11 @@ get_inferior_args (void)
void
set_inferior_args (const char *newargs)
{
xfree (current_inferior ()->args);
current_inferior ()->args = newargs ? xstrdup (newargs) : NULL;
if (newargs != nullptr)
current_inferior ()->args = make_unique_xstrdup (newargs);
else
current_inferior ()->args.reset ();
current_inferior ()->argc = 0;
current_inferior ()->argv = 0;
}

View File

@ -75,7 +75,6 @@ inferior::~inferior ()
m_continuations.clear ();
inferior_free_data (inf);
xfree (inf->args);
target_desc_info_free (inf->tdesc_info);
}

View File

@ -468,7 +468,7 @@ class inferior : public refcounted_object
struct program_space *pspace = NULL;
/* The arguments string to use when running. */
char *args = NULL;
gdb::unique_xmalloc_ptr<char> args;
/* The size of elements in argv. */
int argc = 0;