[v2,11/25] Make current_ui_out be per UI

Message ID 1458573675-15478-12-git-send-email-palves@redhat.com
State New, archived
Headers

Commit Message

Pedro Alves March 21, 2016, 3:21 p.m. UTC
  Similarly to gdb_stdout&co.
---
 gdb/top.c    | 1 +
 gdb/top.h    | 3 +++
 gdb/ui-out.c | 5 -----
 gdb/ui-out.h | 3 ++-
 4 files changed, 6 insertions(+), 6 deletions(-)
  

Patch

diff --git a/gdb/top.c b/gdb/top.c
index 4ecc99d..0d8a18a 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -99,6 +99,7 @@  gen_ret_current_ui_field_ptr (struct ui_file *, gdb_stdout)
 gen_ret_current_ui_field_ptr (struct ui_file *, gdb_stdin)
 gen_ret_current_ui_field_ptr (struct ui_file *, gdb_stderr)
 gen_ret_current_ui_field_ptr (struct ui_file *, gdb_stdlog)
+gen_ret_current_ui_field_ptr (struct ui_out *, current_uiout)
 
 /* Initialization file name for gdb.  This is host-dependent.  */
 
diff --git a/gdb/top.h b/gdb/top.h
index 2c4c9f1..a763f36 100644
--- a/gdb/top.h
+++ b/gdb/top.h
@@ -97,6 +97,9 @@  struct ui
      *_unfiltered.  In the very near future that restriction shall be
      removed - either call shall be unfiltered.  (cagney 1999-06-13).  */
   struct ui_file *m_gdb_stdlog;
+
+  /* The current ui_out.  */
+  struct ui_out *m_current_uiout;
 };
 
 extern struct ui *main_ui;
diff --git a/gdb/ui-out.c b/gdb/ui-out.c
index 4ea571b..3972a56 100644
--- a/gdb/ui-out.c
+++ b/gdb/ui-out.c
@@ -147,11 +147,6 @@  pop_level (struct ui_out *uiout,
   return uiout->level + 1;
 }
 
-/* FIXME: This should not be a global, but something passed down from main.c
-   or top.c.  */
-
-struct ui_out *current_uiout = NULL;
-
 /* These are the interfaces to implementation functions.  */
 
 static void uo_table_begin (struct ui_out *uiout, int nbrofcols,
diff --git a/gdb/ui-out.h b/gdb/ui-out.h
index 905d73c..9e1e74d 100644
--- a/gdb/ui-out.h
+++ b/gdb/ui-out.h
@@ -32,7 +32,8 @@  struct ui_file;
 
 /* FIXME: This should not be a global but something passed down from main.c
    or top.c.  */
-extern struct ui_out *current_uiout;
+extern struct ui_out **current_ui_current_uiout_ptr (void);
+#define current_uiout (*current_ui_current_uiout_ptr ())
 
 /* alignment enum */
 enum ui_align