aboutsummaryrefslogtreecommitdiff
path: root/gdb/linux-nat.c
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2021-08-28 10:58:43 -0400
committerSimon Marchi <simon.marchi@polymtl.ca>2021-09-27 22:30:11 -0400
commitb0f6c8d24726d9bf4a5571a9c881eaa49e3129a3 (patch)
treeafd3572ff62995c09b7d192c9cc87f29d38fd2b5 /gdb/linux-nat.c
parenta58f2d262b3348770a140927ba4bcc20195789d7 (diff)
downloadbinutils-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.c27
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. */