From a025b477cc466112af0b120c5f2bf5d62a62017e Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Tue, 6 Sep 2016 23:17:14 +0100 Subject: [PATCH] Introduce make_cleanup_restore_current_ui Just a tidy, no functional changes. gdb/ChangeLog: 2016-09-06 Pedro Alves * event-top.c (restore_ui_cleanup): Now static. (make_cleanup_restore_current_ui): New function. (switch_thru_all_uis_init): Use it. * infcall.c (call_thread_fsm_should_stop): Use it. * infrun.c (fetch_inferior_event): Use it. * top.c (new_ui_command): Use it. * top.h (restore_ui_cleanup): Delete declaration. (make_cleanup_restore_current_ui): New declaration. --- gdb/ChangeLog | 11 +++++++++++ gdb/event-top.c | 14 +++++++++++--- gdb/infcall.c | 2 +- gdb/infrun.c | 2 +- gdb/top.c | 2 +- gdb/top.h | 4 ++-- 6 files changed, 27 insertions(+), 8 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0df148676cb..e5e0cb51001 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2016-09-06 Pedro Alves + + * event-top.c (restore_ui_cleanup): Now static. + (make_cleanup_restore_current_ui): New function. + (switch_thru_all_uis_init): Use it. + * infcall.c (call_thread_fsm_should_stop): Use it. + * infrun.c (fetch_inferior_event): Use it. + * top.c (new_ui_command): Use it. + * top.h (restore_ui_cleanup): Delete declaration. + (make_cleanup_restore_current_ui): New declaration. + 2016-09-05 Ulrich Weigand * i386-tdep.c (i386_floatformat_for_type): New function. diff --git a/gdb/event-top.c b/gdb/event-top.c index 91b06e6e1f6..576eded22c2 100644 --- a/gdb/event-top.c +++ b/gdb/event-top.c @@ -447,9 +447,9 @@ struct ui *main_ui; struct ui *current_ui; struct ui *ui_list; -/* See top.h. */ +/* A cleanup handler that restores the current UI. */ -void +static void restore_ui_cleanup (void *data) { current_ui = (struct ui *) data; @@ -457,11 +457,19 @@ restore_ui_cleanup (void *data) /* See top.h. */ +struct cleanup * +make_cleanup_restore_current_ui (void) +{ + return make_cleanup (restore_ui_cleanup, current_ui); +} + +/* See top.h. */ + void switch_thru_all_uis_init (struct switch_thru_all_uis *state) { state->iter = ui_list; - state->old_chain = make_cleanup (restore_ui_cleanup, current_ui); + state->old_chain = make_cleanup_restore_current_ui (); } /* See top.h. */ diff --git a/gdb/infcall.c b/gdb/infcall.c index 8595d9e0585..3c33c11d6a3 100644 --- a/gdb/infcall.c +++ b/gdb/infcall.c @@ -530,7 +530,7 @@ call_thread_fsm_should_stop (struct thread_fsm *self, f->return_value = get_call_return_value (&f->return_meta_info); /* Break out of wait_sync_command_done. */ - old_chain = make_cleanup (restore_ui_cleanup, current_ui); + old_chain = make_cleanup_restore_current_ui (); current_ui = f->waiting_ui; target_terminal_ours (); f->waiting_ui->prompt_state = PROMPT_NEEDED; diff --git a/gdb/infrun.c b/gdb/infrun.c index 90841f4e55f..70d7a095cfd 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -3915,7 +3915,7 @@ fetch_inferior_event (void *client_data) /* Events are always processed with the main UI as current UI. This way, warnings, debug output, etc. are always consistently sent to the main console. */ - make_cleanup (restore_ui_cleanup, current_ui); + make_cleanup_restore_current_ui (); current_ui = main_ui; /* End up with readline processing input, if necessary. */ diff --git a/gdb/top.c b/gdb/top.c index bc44192b8ad..5b385d2709e 100644 --- a/gdb/top.c +++ b/gdb/top.c @@ -386,7 +386,7 @@ new_ui_command (char *args, int from_tty) interpreter_name = argv[0]; tty_name = argv[1]; - make_cleanup (restore_ui_cleanup, current_ui); + make_cleanup_restore_current_ui (); failure_chain = make_cleanup (null_cleanup, NULL); diff --git a/gdb/top.h b/gdb/top.h index c5f6bc7b45b..ee664c1c389 100644 --- a/gdb/top.h +++ b/gdb/top.h @@ -188,8 +188,8 @@ extern void delete_ui (struct ui *todel); /* Cleanup that deletes a UI. */ extern struct cleanup *make_delete_ui_cleanup (struct ui *ui); -/* Cleanup that restores the current UI. */ -extern void restore_ui_cleanup (void *data); +/* Make a cleanup that restores the current UI. */ +extern struct cleanup *make_cleanup_restore_current_ui (void); /* Register the UI's input file descriptor in the event loop. */ extern void ui_register_input_event_handler (struct ui *ui); -- 2.30.2