Don't call set_current_source_symtab_and_line from TUI
[deliverable/binutils-gdb.git] / gdb / tui / tui-interp.c
index e5e73210c716bd54c23196c7650e1a8766d3eb9c..bc8fde363bf80144ed21604179455b4d6262c9e8 100644 (file)
@@ -1,6 +1,6 @@
 /* TUI Interpreter definitions for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2019 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 #include "ui-out.h"
 #include "cli-out.h"
 #include "tui/tui-data.h"
-#include "readline/readline.h"
 #include "tui/tui-win.h"
 #include "tui/tui.h"
 #include "tui/tui-io.h"
 #include "infrun.h"
-#include "observer.h"
+#include "observable.h"
 #include "gdbthread.h"
+#include "inferior.h"
+#include "main.h"
 
 /* Set to 1 when the TUI mode must be activated when we first start
    gdb.  */
@@ -58,9 +59,7 @@ public:
 static tui_interp *
 as_tui_interp (struct interp *interp)
 {
-  if (strcmp (interp_name (interp), INTERP_TUI) == 0)
-    return (tui_interp *) interp;
-  return NULL;
+  return dynamic_cast<tui_interp *> (interp);
 }
 
 /* Cleanup the tui before exiting.  */
@@ -211,13 +210,11 @@ tui_on_command_error (void)
 static void
 tui_on_user_selected_context_changed (user_selected_what selection)
 {
-  struct thread_info *tp;
-
   /* This event is suppressed.  */
   if (cli_suppress_notification.user_selected_context)
     return;
 
-  tp = find_thread_ptid (inferior_ptid);
+  thread_info *tp = inferior_ptid != null_ptid ? inferior_thread () : NULL;
 
   SWITCH_THRU_ALL_UIS ()
     {
@@ -244,8 +241,6 @@ tui_interp::init (bool top_level)
   /* Install exit handler to leave the screen in a good shape.  */
   atexit (tui_exit);
 
-  tui_initialize_static_data ();
-
   tui_initialize_io ();
   tui_initialize_win ();
   if (ui_file_isatty (gdb_stdout))
@@ -326,14 +321,14 @@ _initialize_tui_interp (void)
     }
 
   /* If changing this, remember to update cli-interp.c as well.  */
-  observer_attach_normal_stop (tui_on_normal_stop);
-  observer_attach_signal_received (tui_on_signal_received);
-  observer_attach_end_stepping_range (tui_on_end_stepping_range);
-  observer_attach_signal_exited (tui_on_signal_exited);
-  observer_attach_exited (tui_on_exited);
-  observer_attach_no_history (tui_on_no_history);
-  observer_attach_sync_execution_done (tui_on_sync_execution_done);
-  observer_attach_command_error (tui_on_command_error);
-  observer_attach_user_selected_context_changed
+  gdb::observers::normal_stop.attach (tui_on_normal_stop);
+  gdb::observers::signal_received.attach (tui_on_signal_received);
+  gdb::observers::end_stepping_range.attach (tui_on_end_stepping_range);
+  gdb::observers::signal_exited.attach (tui_on_signal_exited);
+  gdb::observers::exited.attach (tui_on_exited);
+  gdb::observers::no_history.attach (tui_on_no_history);
+  gdb::observers::sync_execution_done.attach (tui_on_sync_execution_done);
+  gdb::observers::command_error.attach (tui_on_command_error);
+  gdb::observers::user_selected_context_changed.attach
     (tui_on_user_selected_context_changed);
 }
This page took 0.025756 seconds and 4 git commands to generate.