mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
gdb: add destructor to lwp_info
Replace the lwp_free function with a destructor. Make lwp_info non-copyable, since there is now a destructor (we wouldn't want an lwp_info object getting copied and this->arch_private getting deleted twice). Change-Id: I09fcbe967e362566d3a06fed2abca2a9955570fa
This commit is contained in:
parent
b0f6c8d247
commit
676362df18
@ -793,13 +793,10 @@ static int check_ptrace_stopped_lwp_gone (struct lwp_info *lp);
|
||||
|
||||
/* Destroy and free LP. */
|
||||
|
||||
static void
|
||||
lwp_free (struct lwp_info *lp)
|
||||
lwp_info::~lwp_info ()
|
||||
{
|
||||
/* Let the arch specific bits release arch_lwp_info. */
|
||||
linux_target->low_delete_thread (lp->arch_private);
|
||||
|
||||
xfree (lp);
|
||||
linux_target->low_delete_thread (this->arch_private);
|
||||
}
|
||||
|
||||
/* Traversal function for purge_lwp_list. */
|
||||
@ -814,7 +811,7 @@ lwp_lwpid_htab_remove_pid (void **slot, void *info)
|
||||
{
|
||||
htab_clear_slot (lwp_lwpid_htab, slot);
|
||||
lwp_list_remove (lp);
|
||||
lwp_free (lp);
|
||||
delete lp;
|
||||
}
|
||||
|
||||
return 1;
|
||||
@ -899,7 +896,7 @@ delete_lwp (ptid_t ptid)
|
||||
lwp_list_remove (lp);
|
||||
|
||||
/* Release. */
|
||||
lwp_free (lp);
|
||||
delete lp;
|
||||
}
|
||||
|
||||
/* Return a pointer to the structure describing the LWP corresponding
|
||||
|
@ -208,6 +208,10 @@ struct lwp_info
|
||||
waitstatus.kind = TARGET_WAITKIND_IGNORE;
|
||||
}
|
||||
|
||||
~lwp_info ();
|
||||
|
||||
DISABLE_COPY_AND_ASSIGN (lwp_info);
|
||||
|
||||
/* The process id of the LWP. This is a combination of the LWP id
|
||||
and overall process id. */
|
||||
ptid_t ptid;
|
||||
|
Loading…
Reference in New Issue
Block a user