diff options
author | Simon Marchi <simark@simark.ca> | 2016-09-16 15:44:29 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2016-10-03 17:22:31 -0400 |
commit | 33de0b1741b1939dd5384e54a858e71d2029a365 (patch) | |
tree | b9c64ceace2a8fa4d8c5341f16df1c1f593657f1 /gdb/ui-out.c | |
parent | ec55637a35d74522d4a1fbb65ed4137803ed9d64 (diff) | |
download | gdb-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.c | 18 |
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 |