aboutsummaryrefslogtreecommitdiff
path: root/gdb/ui-out.c
diff options
context:
space:
mode:
authorSimon Marchi <simark@simark.ca>2016-09-16 15:44:29 -0400
committerSimon Marchi <simon.marchi@ericsson.com>2016-10-03 17:22:31 -0400
commit33de0b1741b1939dd5384e54a858e71d2029a365 (patch)
treeb9c64ceace2a8fa4d8c5341f16df1c1f593657f1 /gdb/ui-out.c
parentec55637a35d74522d4a1fbb65ed4137803ed9d64 (diff)
downloadgdb-33de0b1741b1939dd5384e54a858e71d2029a365.zip
gdb-33de0b1741b1939dd5384e54a858e71d2029a365.tar.gz
gdb-33de0b1741b1939dd5384e54a858e71d2029a365.tar.bz2
Introduce cleanup to restore current_uiout
Make a globally available cleanup from a pre-existing one in infrun.c. This is used in a following patch. gdb/ChangeLog: * infrun.c (restore_current_uiout_cleanup): Move to ui-out.c. (print_stop_event): Use make_cleanup_restore_current_uiout. * python/python.c (execute_gdb_command): Likewise. * ui-out.c (restore_current_uiout_cleanup): Move from infrun.c. (make_cleanup_restore_current_uiout): New function definition. * ui-out.h (make_cleanup_restore_current_uiout): New function declaration. * utils.c (do_restore_ui_out): Remove. (make_cleanup_restore_ui_out): Remove. * utils.h (make_cleanup_restore_ui_out): Remove.
Diffstat (limited to 'gdb/ui-out.c')
-rw-r--r--gdb/ui-out.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/gdb/ui-out.c b/gdb/ui-out.c
index 3972a56..ec44ab6 100644
--- a/gdb/ui-out.c
+++ b/gdb/ui-out.c
@@ -953,6 +953,24 @@ ui_out_destroy (struct ui_out *uiout)
xfree (uiout);
}
+/* Cleanup that restores a previous current uiout. */
+
+static void
+restore_current_uiout_cleanup (void *arg)
+{
+ struct ui_out *saved_uiout = (struct ui_out *) arg;
+
+ current_uiout = saved_uiout;
+}
+
+/* See ui-out.h. */
+
+struct cleanup *
+make_cleanup_restore_current_uiout (void)
+{
+ return make_cleanup (restore_current_uiout_cleanup, current_uiout);
+}
+
/* Standard gdb initialization hook. */
void