Make windows_thread_info::name a unique_xmalloc_ptr

This changes windows_thread_info::name to be a unique_xmalloc_ptr,
removing some manual memory management.

gdb/ChangeLog
2020-04-08  Tom Tromey  <tromey@adacore.com>

	* windows-nat.c (handle_exception)
	(windows_nat_target::thread_name): Update.
	* nat/windows-nat.h (windows_thread_info): Remove destructor.
	<name>: Now unique_xmalloc_ptr.
This commit is contained in:
Tom Tromey 2020-04-08 14:33:35 -06:00
parent 62fe396b1c
commit 2950fdf742
3 changed files with 10 additions and 9 deletions

View File

@ -1,3 +1,10 @@
2020-04-08 Tom Tromey <tromey@adacore.com>
* windows-nat.c (handle_exception)
(windows_nat_target::thread_name): Update.
* nat/windows-nat.h (windows_thread_info): Remove destructor.
<name>: Now unique_xmalloc_ptr.
2020-04-08 Tom Tromey <tromey@adacore.com>
* windows-nat.c (thread_rec)

View File

@ -32,11 +32,6 @@ struct windows_thread_info
{
}
~windows_thread_info ()
{
xfree (name);
}
DISABLE_COPY_AND_ASSIGN (windows_thread_info);
/* The Win32 thread identifier. */
@ -77,7 +72,7 @@ struct windows_thread_info
bool reload_context = false;
/* The name of the thread, allocated by xmalloc. */
char *name = nullptr;
gdb::unique_xmalloc_ptr<char> name;
};
#endif

View File

@ -1414,8 +1414,7 @@ handle_exception (struct target_waitstatus *ourstatus)
if (thread_name_len > 0)
{
thread_name.get ()[thread_name_len - 1] = '\0';
xfree (named_thread->name);
named_thread->name = thread_name.release ();
named_thread->name = std::move (thread_name);
}
}
ourstatus->value.sig = GDB_SIGNAL_TRAP;
@ -3394,7 +3393,7 @@ windows_nat_target::get_ada_task_ptid (long lwp, long thread)
const char *
windows_nat_target::thread_name (struct thread_info *thr)
{
return thread_rec (thr->ptid.tid (), 0)->name;
return thread_rec (thr->ptid.tid (), 0)->name.get ();
}