diff options
author | Tom Tromey <tom@tromey.com> | 2020-05-16 09:58:45 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2020-05-16 09:58:46 -0600 |
commit | 2dab0c7ba0d69bcc16cfe58da279ce915ef24348 (patch) | |
tree | 209bdb0dfa70f64c94d42dcb03d65d25e21a11c7 /gdb | |
parent | 59f7bd8d2b855162db6784c9724ead9e2377f32c (diff) | |
download | gdb-2dab0c7ba0d69bcc16cfe58da279ce915ef24348.zip gdb-2dab0c7ba0d69bcc16cfe58da279ce915ef24348.tar.gz gdb-2dab0c7ba0d69bcc16cfe58da279ce915ef24348.tar.bz2 |
Remove ALL_UIS
Continuing my goal of removing the "ALL_*" iterator macros, this
removes ALL_UIS, replacing it with an iterator adaptor.
gdb/ChangeLog
2020-05-16 Tom Tromey <tom@tromey.com>
* top.c (quit_force): Update.
* infrun.c (handle_no_resumed): Update.
* top.h (all_uis): New function.
(ALL_UIS): Remove.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/infrun.c | 3 | ||||
-rw-r--r-- | gdb/top.c | 3 | ||||
-rw-r--r-- | gdb/top.h | 10 |
4 files changed, 16 insertions, 7 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8d6901e..def9db59 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2020-05-16 Tom Tromey <tom@tromey.com> + + * top.c (quit_force): Update. + * infrun.c (handle_no_resumed): Update. + * top.h (all_uis): New function. + (ALL_UIS): Remove. + 2020-05-16 Simon Marchi <simon.marchi@efficios.com> * mips-linux-tdep.c (mips_linux_in_dynsym_stub): Fix condition. diff --git a/gdb/infrun.c b/gdb/infrun.c index 601a2ac..95fc3bf 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -5045,10 +5045,9 @@ handle_no_resumed (struct execution_control_state *ecs) { if (target_can_async_p ()) { - struct ui *ui; int any_sync = 0; - ALL_UIS (ui) + for (ui *ui : all_uis ()) { if (ui->prompt_state == PROMPT_BLOCKED) { @@ -1782,12 +1782,11 @@ quit_force (int *exit_arg, int from_tty) { if (write_history_p && history_filename) { - struct ui *ui; int save = 0; /* History is currently shared between all UIs. If there's any UI with a terminal, save history. */ - ALL_UIS (ui) + for (ui *ui : all_uis ()) { if (input_interactive_p (ui)) { @@ -22,6 +22,7 @@ #include "gdbsupport/buffer.h" #include "gdbsupport/event-loop.h" +#include "gdbsupport/next-iterator.h" #include "value.h" struct tl_interp_info; @@ -206,9 +207,12 @@ public: #define SWITCH_THRU_ALL_UIS() \ for (switch_thru_all_uis stau_state; !stau_state.done (); stau_state.next ()) -/* Traverse over all UIs. */ -#define ALL_UIS(UI) \ - for (UI = ui_list; UI; UI = UI->next) \ +/* An adapter that can be used to traverse over all UIs. */ +static inline +next_adapter<ui> all_uis () +{ + return next_adapter<ui> (ui_list); +} /* Register the UI's input file descriptor in the event loop. */ extern void ui_register_input_event_handler (struct ui *ui); |