diff options
author | Tom Tromey <tom@tromey.com> | 2020-04-23 06:26:31 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2020-04-23 06:26:31 -0600 |
commit | 740480b88afd4f2b01d117525f534ddce28530f3 (patch) | |
tree | 0c1b273c1f4d927ef0c469829855926cc5438ffb /gdb/darwin-nat.c | |
parent | 2745674244d6aecddcf636475034bdb9c0a6b4a0 (diff) | |
download | gdb-740480b88afd4f2b01d117525f534ddce28530f3.zip gdb-740480b88afd4f2b01d117525f534ddce28530f3.tar.gz gdb-740480b88afd4f2b01d117525f534ddce28530f3.tar.bz2 |
Remove iterate_over_inferiors
The last caller of iterate_over_inferiors is darwin-nat.c. This patch
removes the calls from this file, and then remove
iterate_over_inferiors.
In general I think "external iteration" is to be preferred in gdb, the
main benefit being that the code is easier to read.
I rebuilt this on Darwin. I seem to only have access to Darwin
systems where gdb does not yet work :-(, so I can't run the test
suite.
gdb/ChangeLog
2020-04-23 Tom Tromey <tom@tromey.com>
* inferior.h (iterate_over_inferiors): Don't declare.
* inferior.c (iterate_over_inferiors): Remove.
* darwin-nat.c (find_inferior_task_it, find_inferior_pid_it):
Remove.
(darwin_find_inferior_by_task, darwin_find_inferior_by_pid): Don't
use iterate_over_inferiors.
(darwin_resume_inferior_it)
(struct resume_inferior_threads_param)
(darwin_resume_inferior_threads_it): Remove.
(darwin_nat_target::resume): Don't use iterate_over_inferiors.
Change-Id: Ib2fdf2c98e40f13156ff869ed3173d5f1fdae7ea
Diffstat (limited to 'gdb/darwin-nat.c')
-rw-r--r-- | gdb/darwin-nat.c | 68 |
1 files changed, 19 insertions, 49 deletions
diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c index 3bd8d8c..2d74bc0 100644 --- a/gdb/darwin-nat.c +++ b/gdb/darwin-nat.c @@ -378,32 +378,30 @@ darwin_nat_target::check_new_threads (inferior *inf) MACH_CHECK_ERROR (kret); } -static int -find_inferior_task_it (struct inferior *inf, void *port_ptr) -{ - darwin_inferior *priv = get_darwin_inferior (inf); - - return priv != nullptr && priv->task == *(task_t *)port_ptr; -} - -static int -find_inferior_pid_it (struct inferior *inf, void *pid_ptr) -{ - return inf->pid == *(int *)pid_ptr; -} - /* Return an inferior by task port. */ static struct inferior * darwin_find_inferior_by_task (task_t port) { - return iterate_over_inferiors (&find_inferior_task_it, &port); + for (inferior *inf : all_inferiors ()) + { + darwin_inferior *priv = get_darwin_inferior (inf); + + if (priv != nullptr && priv->task == port) + return inf; + } + return nullptr; } /* Return an inferior by pid port. */ static struct inferior * darwin_find_inferior_by_pid (int pid) { - return iterate_over_inferiors (&find_inferior_pid_it, &pid); + for (inferior *inf : all_inferiors ()) + { + if (inf->pid == pid) + return inf; + } + return nullptr; } /* Return a thread by port. */ @@ -458,15 +456,6 @@ darwin_resume_inferior (struct inferior *inf) } } -/* Iterator functions. */ - -static int -darwin_resume_inferior_it (struct inferior *inf, void *arg) -{ - darwin_resume_inferior (inf); - return 0; -} - static void darwin_dump_message (mach_msg_header_t *hdr, int disp_body) { @@ -886,23 +875,6 @@ darwin_resume_inferior_threads (struct inferior *inf, int step, int nsignal) darwin_resume_thread (inf, thread, step, nsignal); } -struct resume_inferior_threads_param -{ - int step; - int nsignal; -}; - -static int -darwin_resume_inferior_threads_it (struct inferior *inf, void *param) -{ - int step = ((struct resume_inferior_threads_param *)param)->step; - int nsignal = ((struct resume_inferior_threads_param *)param)->nsignal; - - darwin_resume_inferior_threads (inf, step, nsignal); - - return 0; -} - /* Suspend all threads of INF. */ static void @@ -951,15 +923,13 @@ darwin_nat_target::resume (ptid_t ptid, int step, enum gdb_signal signal) /* minus_one_ptid is RESUME_ALL. */ if (ptid == minus_one_ptid) { - struct resume_inferior_threads_param param; - - param.nsignal = nsignal; - param.step = step; - /* Resume threads. */ - iterate_over_inferiors (darwin_resume_inferior_threads_it, ¶m); + for (inferior *inf : all_inferiors ()) + darwin_resume_inferior_threads (inf, step, nsignal); + /* Resume tasks. */ - iterate_over_inferiors (darwin_resume_inferior_it, NULL); + for (inferior *inf : all_inferiors ()) + darwin_resume_inferior (inf); } else { |