aboutsummaryrefslogtreecommitdiff
path: root/gdb/ui-out.h
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-04-23 10:21:50 -0600
committerTom Tromey <tom@tromey.com>2017-08-03 07:58:51 -0600
commit4a2b031d5452226cf7894f313b3aac603f7ec5fb (patch)
tree8230279453a3136b5d29f238fec14112e1ae80cb /gdb/ui-out.h
parentfd9770d81fba7ad860e8bcfbc13c77f21041f1f3 (diff)
downloadgdb-4a2b031d5452226cf7894f313b3aac603f7ec5fb.zip
gdb-4a2b031d5452226cf7894f313b3aac603f7ec5fb.tar.gz
gdb-4a2b031d5452226cf7894f313b3aac603f7ec5fb.tar.bz2
Introduce and use ui_out_emit_table
This introduces ui_out_emit_table, similar to the other existing ui_out RAII classes, and then uses it in a number of places. This replaces some cleanups. ChangeLog 2017-08-03 Tom Tromey <tom@tromey.com> * tracepoint.c (tvariables_info_1): Use ui_out_emit_table. (info_static_tracepoint_markers_command): Likewise. * solib.c (info_sharedlibrary_command): Use ui_out_emit_table. * skip.c (skip_info): Use ui_out_emit_table. * progspace.c (print_program_space): Use ui_out_emit_table. * osdata.c (info_osdata): Use ui_out_emit_table. * mi/mi-cmd-info.c (mi_cmd_info_ada_exceptions): Use ui_out_emit_table. * linux-thread-db.c (info_auto_load_libthread_db): Use ui_out_emit_table. * inferior.c (print_inferior): Use ui_out_emit_table. * gdb_bfd.c (maintenance_info_bfds): Use ui_out_emit_table. * breakpoint.c (breakpoint_1): Use ui_out_emit_table. * auto-load.c (auto_load_info_scripts): Use ui_out_emit_table. * ada-tasks.c (print_ada_task_info): Use ui_out_emit_table. * ui-out.h (class ui_out_emit_table): New.
Diffstat (limited to 'gdb/ui-out.h')
-rw-r--r--gdb/ui-out.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/gdb/ui-out.h b/gdb/ui-out.h
index 9278cab..857e252 100644
--- a/gdb/ui-out.h
+++ b/gdb/ui-out.h
@@ -220,4 +220,30 @@ private:
typedef ui_out_emit_type<ui_out_type_tuple> ui_out_emit_tuple;
typedef ui_out_emit_type<ui_out_type_list> ui_out_emit_list;
+/* This is similar to make_cleanup_ui_out_table_begin_end, but written
+ as an RAII class. */
+class ui_out_emit_table
+{
+public:
+
+ ui_out_emit_table (struct ui_out *uiout, int nr_cols, int nr_rows,
+ const char *tblid)
+ : m_uiout (uiout)
+ {
+ m_uiout->table_begin (nr_cols, nr_rows, tblid);
+ }
+
+ ~ui_out_emit_table ()
+ {
+ m_uiout->table_end ();
+ }
+
+ ui_out_emit_table (const ui_out_emit_table &) = delete;
+ ui_out_emit_table &operator= (const ui_out_emit_table &) = delete;
+
+private:
+
+ struct ui_out *m_uiout;
+};
+
#endif /* UI_OUT_H */