diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2021-08-28 10:58:43 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2021-09-27 22:30:11 -0400 |
commit | b0f6c8d24726d9bf4a5571a9c881eaa49e3129a3 (patch) | |
tree | afd3572ff62995c09b7d192c9cc87f29d38fd2b5 /gdb/linux-nat.c | |
parent | a58f2d262b3348770a140927ba4bcc20195789d7 (diff) | |
download | binutils-b0f6c8d24726d9bf4a5571a9c881eaa49e3129a3.zip binutils-b0f6c8d24726d9bf4a5571a9c881eaa49e3129a3.tar.gz binutils-b0f6c8d24726d9bf4a5571a9c881eaa49e3129a3.tar.bz2 |
gdb: make lwp_info non-POD
Initialize all fields in the class declaration directly. This opens the
door to using intrusive_list, done in the following patch.
Change-Id: I38bb27410cd9ebf511d310bb86fe2ea1872c3b05
Diffstat (limited to 'gdb/linux-nat.c')
-rw-r--r-- | gdb/linux-nat.c | 27 |
1 files changed, 6 insertions, 21 deletions
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 0492cc0..f063db8 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -845,19 +845,10 @@ purge_lwp_list (int pid) static struct lwp_info * add_initial_lwp (ptid_t ptid) { - struct lwp_info *lp; - gdb_assert (ptid.lwp_p ()); - lp = XNEW (struct lwp_info); - - memset (lp, 0, sizeof (struct lwp_info)); - - lp->last_resume_kind = resume_continue; - lp->waitstatus.kind = TARGET_WAITKIND_IGNORE; + lwp_info *lp = new lwp_info (ptid); - lp->ptid = ptid; - lp->core = -1; /* Add to sorted-by-reverse-creation-order list. */ lwp_list_add (lp); @@ -893,16 +884,13 @@ add_lwp (ptid_t ptid) static void delete_lwp (ptid_t ptid) { - struct lwp_info *lp; - void **slot; - struct lwp_info dummy; + lwp_info dummy (ptid); - dummy.ptid = ptid; - slot = htab_find_slot (lwp_lwpid_htab, &dummy, NO_INSERT); + void **slot = htab_find_slot (lwp_lwpid_htab, &dummy, NO_INSERT); if (slot == NULL) return; - lp = *(struct lwp_info **) slot; + lwp_info *lp = *(struct lwp_info **) slot; gdb_assert (lp != NULL); htab_clear_slot (lwp_lwpid_htab, slot); @@ -920,18 +908,15 @@ delete_lwp (ptid_t ptid) static struct lwp_info * find_lwp_pid (ptid_t ptid) { - struct lwp_info *lp; int lwp; - struct lwp_info dummy; if (ptid.lwp_p ()) lwp = ptid.lwp (); else lwp = ptid.pid (); - dummy.ptid = ptid_t (0, lwp); - lp = (struct lwp_info *) htab_find (lwp_lwpid_htab, &dummy); - return lp; + lwp_info dummy (ptid_t (0, lwp)); + return (struct lwp_info *) htab_find (lwp_lwpid_htab, &dummy); } /* See nat/linux-nat.h. */ |