aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog11
-rw-r--r--gdb/event-top.c14
-rw-r--r--gdb/infcall.c2
-rw-r--r--gdb/infrun.c2
-rw-r--r--gdb/top.c2
-rw-r--r--gdb/top.h4
6 files changed, 27 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index aba4666..59854dd 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,14 @@
+2016-09-06 Pedro Alves <palves@redhat.com>
+
+ * 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-08-30 Andreas Arnez <arnez@linux.vnet.ibm.com>
* thread.c (tp_array_compar): Insert missing parentheses.
diff --git a/gdb/event-top.c b/gdb/event-top.c
index 91b06e6..576eded 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 8199bdd..988b36a 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -531,7 +531,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 90841f4..70d7a09 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 bc44192..5b385d2 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 c5f6bc7..ee664c1 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);