public inbox for gdb-cvs@sourceware.org help / color / mirror / Atom feed
From: Tom Tromey <tromey@sourceware.org> To: gdb-cvs@sourceware.org Subject: [binutils-gdb] Remove iterate_over_inferiors Date: Thu, 23 Apr 2020 12:39:32 +0000 (GMT) [thread overview] Message-ID: <20200423123932.97E75385DC0B@sourceware.org> (raw) https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=740480b88afd4f2b01d117525f534ddce28530f3 commit 740480b88afd4f2b01d117525f534ddce28530f3 Author: Tom Tromey <tom@tromey.com> Date: Thu Apr 23 06:26:31 2020 -0600 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 Diff: --- gdb/ChangeLog | 13 +++++++++++ gdb/darwin-nat.c | 68 ++++++++++++++++---------------------------------------- gdb/inferior.c | 11 --------- gdb/inferior.h | 14 ------------ 4 files changed, 32 insertions(+), 74 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 571ca4b2120..f5b4095083b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,16 @@ +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. + 2020-04-23 Tom de Vries <tdevries@suse.de> * blockframe.c (find_pc_partial_function): Use diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c index 3bd8d8ce003..2d74bc010c3 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 { diff --git a/gdb/inferior.c b/gdb/inferior.c index ceee00e9eed..2f4ced0788d 100644 --- a/gdb/inferior.c +++ b/gdb/inferior.c @@ -310,17 +310,6 @@ find_inferior_for_program_space (struct program_space *pspace) return NULL; } -struct inferior * -iterate_over_inferiors (int (*callback) (struct inferior *, void *), - void *data) -{ - for (inferior *inf : all_inferiors_safe ()) - if ((*callback) (inf, data)) - return inf; - - return NULL; -} - int have_inferiors (void) { diff --git a/gdb/inferior.h b/gdb/inferior.h index 4229c6017d9..1ac51369dff 100644 --- a/gdb/inferior.h +++ b/gdb/inferior.h @@ -589,20 +589,6 @@ extern struct inferior *find_inferior_id (int num); extern struct inferior * find_inferior_for_program_space (struct program_space *pspace); -/* Inferior iterator function. - - Calls a callback function once for each inferior, so long as the - callback function returns false. If the callback function returns - true, the iteration will end and the current inferior will be - returned. This can be useful for implementing a search for a - inferior with arbitrary attributes, or for applying some operation - to every inferior. - - It is safe to delete the iterated inferior from the callback. */ -extern struct inferior *iterate_over_inferiors (int (*) (struct inferior *, - void *), - void *); - /* Returns true if the inferior list is not empty. */ extern int have_inferiors (void);
reply other threads:[~2020-04-23 12:39 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200423123932.97E75385DC0B@sourceware.org \ --to=tromey@sourceware.org \ --cc=gdb-cvs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).