aboutsummaryrefslogtreecommitdiff
path: root/gdb/ui-out.h
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-08-13 10:47:32 -0600
committerTom Tromey <tom@tromey.com>2017-09-09 13:46:08 -0600
commitca5909c7de7353d8005bf8fdcc020b8f14cc1603 (patch)
tree7f6a92c8c64d4154b16b8a30d6bd7fdde6fe19f3 /gdb/ui-out.h
parente6a2252ac3e3dc748df33b38ac66cd78c80be5ad (diff)
downloadgdb-ca5909c7de7353d8005bf8fdcc020b8f14cc1603.zip
gdb-ca5909c7de7353d8005bf8fdcc020b8f14cc1603.tar.gz
gdb-ca5909c7de7353d8005bf8fdcc020b8f14cc1603.tar.bz2
Remove make_cleanup_ui_out_redirect_pop
This patch introduces ui_out_redirect_pop. All uses of make_cleanup_ui_out_redirect_pop are replaced with this new class. ChangeLog 2017-09-09 Tom Tromey <tom@tromey.com> * mi/mi-interp.c (mi_user_selected_context_changed): Use ui_out_redirect_pop. * guile/scm-ports.c (ioscm_with_output_to_port_worker): Use ui_out_redirect_pop. * utils.c (do_ui_out_redirect_pop) (make_cleanup_ui_out_redirect_pop): Remove. * top.c (execute_command_to_string): Use ui_out_redirect_pop. * utils.h (make_cleanup_ui_out_redirect_pop): Remove. * ui-out.h (ui_out_redirect_pop): New class.
Diffstat (limited to 'gdb/ui-out.h')
-rw-r--r--gdb/ui-out.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/gdb/ui-out.h b/gdb/ui-out.h
index d983837..9ed2bd2 100644
--- a/gdb/ui-out.h
+++ b/gdb/ui-out.h
@@ -242,4 +242,27 @@ private:
struct ui_out *m_uiout;
};
+/* On destruction, pop the last redirection by calling the uiout's
+ redirect method with a NULL parameter. */
+class ui_out_redirect_pop
+{
+public:
+
+ ui_out_redirect_pop (ui_out *uiout)
+ : m_uiout (uiout)
+ {
+ }
+
+ ~ui_out_redirect_pop ()
+ {
+ m_uiout->redirect (NULL);
+ }
+
+ ui_out_redirect_pop (const ui_out_redirect_pop &) = delete;
+ ui_out_redirect_pop &operator= (const ui_out_redirect_pop &) = delete;
+
+private:
+ struct ui_out *m_uiout;
+};
+
#endif /* UI_OUT_H */