Remove find_inferior_id

Remove find_inferior_id, replacing its usages with find_thread_ptid.
find_thread_ptid was implemented using find_inferior_id, so move the
implementation there instead.

gdb/gdbserver/ChangeLog:

	* inferiors.c (find_inferior_id): Remove.
	(find_thread_ptid): Move implemention from find_inferior_id to
	here.
	* inferiors.h (find_inferior_id): Remove.
	* server.c (handle_status): Use find_thread_ptid.
	(process_serial_event): Likewise.
	* thread-db.c (find_one_thread): Likewise.
	(thread_db_thread_handle): Likewise.
	* win32-low.c (thread_rec): Likewise.
	(child_delete_thread): Likewise.
	(win32_thread_alive): Likewise.
	(get_child_debug_event): Likewise.
This commit is contained in:
Simon Marchi
2017-12-02 20:36:34 -05:00
parent da25033cd9
commit 8dc7b443a6
6 changed files with 28 additions and 40 deletions

View File

@ -1,3 +1,18 @@
2017-12-02 Simon Marchi <simon.marchi@polymtl.ca>
* inferiors.c (find_inferior_id): Remove.
(find_thread_ptid): Move implemention from find_inferior_id to
here.
* inferiors.h (find_inferior_id): Remove.
* server.c (handle_status): Use find_thread_ptid.
(process_serial_event): Likewise.
* thread-db.c (find_one_thread): Likewise.
(thread_db_thread_handle): Likewise.
* win32-low.c (thread_rec): Likewise.
(child_delete_thread): Likewise.
(win32_thread_alive): Likewise.
(get_child_debug_event): Likewise.
2017-12-02 Simon Marchi <simon.marchi@polymtl.ca> 2017-12-02 Simon Marchi <simon.marchi@polymtl.ca>
* linux-mips-low.c (update_watch_registers_callback): Return * linux-mips-low.c (update_watch_registers_callback): Return

View File

@ -42,16 +42,6 @@ find_inferior (std::list<thread_info *> *thread_list,
}); });
} }
thread_info *
find_inferior_id (std::list<thread_info *> *thread_list, ptid_t id)
{
gdb_assert (thread_list == &all_threads);
return find_thread ([&] (thread_info *thread) {
return thread->id == id;
});
}
thread_info * thread_info *
find_inferior_in_random (std::list<thread_info *> *thread_list, find_inferior_in_random (std::list<thread_info *> *thread_list,
int (*func) (thread_info *, void *), int (*func) (thread_info *, void *),
@ -120,7 +110,9 @@ get_first_thread (void)
struct thread_info * struct thread_info *
find_thread_ptid (ptid_t ptid) find_thread_ptid (ptid_t ptid)
{ {
return (struct thread_info *) find_inferior_id (&all_threads, ptid); return find_thread ([&] (thread_info *thread) {
return thread->id == ptid;
});
} }
/* Find a thread associated with the given PROCESS, or NULL if no /* Find a thread associated with the given PROCESS, or NULL if no

View File

@ -142,8 +142,6 @@ void clear_inferiors (void);
thread_info *find_inferior (std::list<thread_info *> *thread_list, thread_info *find_inferior (std::list<thread_info *> *thread_list,
int (*func) (thread_info *, void *), void *arg); int (*func) (thread_info *, void *), void *arg);
thread_info *find_inferior_id (std::list<thread_info *> *thread_list,
ptid_t id);
thread_info *find_inferior_in_random (std::list<thread_info *> *thread_list, thread_info *find_inferior_in_random (std::list<thread_info *> *thread_list,
int (*func) (thread_info *, void *), int (*func) (thread_info *, void *),
void *arg); void *arg);

View File

@ -3355,7 +3355,7 @@ handle_status (char *own_buf)
if (last_status.kind != TARGET_WAITKIND_IGNORE if (last_status.kind != TARGET_WAITKIND_IGNORE
&& last_status.kind != TARGET_WAITKIND_EXITED && last_status.kind != TARGET_WAITKIND_EXITED
&& last_status.kind != TARGET_WAITKIND_SIGNALLED) && last_status.kind != TARGET_WAITKIND_SIGNALLED)
thread = find_inferior_id (&all_threads, last_ptid); thread = find_thread_ptid (last_ptid);
/* If the last event thread is not found for some reason, look /* If the last event thread is not found for some reason, look
for some other thread that might have an event to report. */ for some other thread that might have an event to report. */
@ -4081,9 +4081,7 @@ process_serial_event (void)
/* GDB is telling us to choose any thread. Check if /* GDB is telling us to choose any thread. Check if
the currently selected thread is still valid. If the currently selected thread is still valid. If
it is not, select the first available. */ it is not, select the first available. */
struct thread_info *thread = thread_info *thread = find_thread_ptid (general_thread);
(struct thread_info *) find_inferior_id (&all_threads,
general_thread);
if (thread == NULL) if (thread == NULL)
thread = get_first_thread (); thread = get_first_thread ();
thread_id = thread->id; thread_id = thread->id;

View File

@ -165,13 +165,12 @@ find_one_thread (ptid_t ptid)
td_thrhandle_t th; td_thrhandle_t th;
td_thrinfo_t ti; td_thrinfo_t ti;
td_err_e err; td_err_e err;
struct thread_info *inferior;
struct lwp_info *lwp; struct lwp_info *lwp;
struct thread_db *thread_db = current_process ()->priv->thread_db; struct thread_db *thread_db = current_process ()->priv->thread_db;
int lwpid = ptid_get_lwp (ptid); int lwpid = ptid_get_lwp (ptid);
inferior = (struct thread_info *) find_inferior_id (&all_threads, ptid); thread_info *thread = find_thread_ptid (ptid);
lwp = get_thread_lwp (inferior); lwp = get_thread_lwp (thread);
if (lwp->thread_known) if (lwp->thread_known)
return 1; return 1;
@ -452,8 +451,7 @@ thread_db_thread_handle (ptid_t ptid, gdb_byte **handle, int *handle_len)
{ {
struct thread_db *thread_db; struct thread_db *thread_db;
struct lwp_info *lwp; struct lwp_info *lwp;
struct thread_info *thread thread_info *thread = find_thread_ptid (ptid);
= (struct thread_info *) find_inferior_id (&all_threads, ptid);
if (thread == NULL) if (thread == NULL)
return false; return false;

View File

@ -193,14 +193,11 @@ win32_require_context (win32_thread_info *th)
static win32_thread_info * static win32_thread_info *
thread_rec (ptid_t ptid, int get_context) thread_rec (ptid_t ptid, int get_context)
{ {
struct thread_info *thread; thread_info *thread = find_thread_ptid (ptid);
win32_thread_info *th;
thread = (struct thread_info *) find_inferior_id (&all_threads, ptid);
if (thread == NULL) if (thread == NULL)
return NULL; return NULL;
th = (win32_thread_info *) thread_target_data (thread); win32_thread_info *th = (win32_thread_info *) thread_target_data (thread);
if (get_context) if (get_context)
win32_require_context (th); win32_require_context (th);
return th; return th;
@ -244,14 +241,11 @@ delete_thread_info (thread_info *thread)
static void static void
child_delete_thread (DWORD pid, DWORD tid) child_delete_thread (DWORD pid, DWORD tid)
{ {
ptid_t ptid;
/* If the last thread is exiting, just return. */ /* If the last thread is exiting, just return. */
if (all_threads.size () == 1) if (all_threads.size () == 1)
return; return;
ptid = ptid_build (pid, tid, 0); thread_info *thread = find_thread_ptid (ptid_t (pid, tid));
thread_info *thread = find_inferior_id (&all_threads, ptid);
if (thread == NULL) if (thread == NULL)
return; return;
@ -892,15 +886,9 @@ win32_join (int pid)
static int static int
win32_thread_alive (ptid_t ptid) win32_thread_alive (ptid_t ptid)
{ {
int res;
/* Our thread list is reliable; don't bother to poll target /* Our thread list is reliable; don't bother to poll target
threads. */ threads. */
if (find_inferior_id (&all_threads, ptid) != NULL) return find_thread_ptid (ptid) != NULL;
res = 1;
else
res = 0;
return res;
} }
/* Resume the inferior process. RESUME_INFO describes how we want /* Resume the inferior process. RESUME_INFO describes how we want
@ -1582,8 +1570,7 @@ get_child_debug_event (struct target_waitstatus *ourstatus)
} }
ptid = debug_event_ptid (&current_event); ptid = debug_event_ptid (&current_event);
current_thread = current_thread = find_thread_ptid (ptid);
(struct thread_info *) find_inferior_id (&all_threads, ptid);
return 1; return 1;
} }