Introduce make_visible method
[deliverable/binutils-gdb.git] / gdb / tui / tui-data.c
index 1edf40b71b3613dc08dc9ebf60447745bfcbdf41..6e1df0136f026de2ce680754163f7bb7766e6040 100644 (file)
@@ -63,25 +63,12 @@ static void free_content_elements (tui_win_content,
 ** PUBLIC FUNCTIONS
 **********************************/
 
-int
-tui_win_is_source_type (enum tui_win_type win_type)
-{
-  return (win_type == SRC_WIN || win_type == DISASSEM_WIN);
-}
-
 int
 tui_win_is_auxillary (enum tui_win_type win_type)
 {
   return (win_type > MAX_MAJOR_WINDOWS);
 }
 
-int
-tui_win_has_locator (struct tui_win_info *win_info)
-{
-  return (win_info != NULL 
-         && win_info->detail.source_info.has_locator);
-}
-
 void
 tui_set_win_highlight (struct tui_win_info *win_info, 
                       int highlight)
@@ -159,7 +146,7 @@ void
 tui_clear_source_windows_detail ()
 {
   for (tui_win_info *win : tui_source_windows ())
-    tui_clear_win_detail (win);
+    win->clear_detail ();
 }
 
 
@@ -178,10 +165,10 @@ tui_add_to_source_windows (struct tui_win_info *win_info)
 void
 tui_source_window_base::clear_detail ()
 {
-  detail.source_info.gdbarch = NULL;
-  detail.source_info.start_line_or_addr.loa = LOA_ADDRESS;
-  detail.source_info.start_line_or_addr.u.addr = 0;
-  detail.source_info.horizontal_offset = 0;
+  gdbarch = NULL;
+  start_line_or_addr.loa = LOA_ADDRESS;
+  start_line_or_addr.u.addr = 0;
+  horizontal_offset = 0;
 }
 
 /* See tui-data.h.  */
@@ -197,23 +184,14 @@ tui_cmd_window::clear_detail ()
 void
 tui_data_window::clear_detail ()
 {
-  detail.data_display_info.data_content = NULL;
-  detail.data_display_info.data_content_count = 0;
-  detail.data_display_info.regs_content = NULL;
-  detail.data_display_info.regs_content_count = 0;
-  detail.data_display_info.regs_column_count = 1;
-  detail.data_display_info.display_regs = FALSE;
-}
-
-/* Clear the pertinant detail in the windows.  */
-void
-tui_clear_win_detail (struct tui_win_info *win_info)
-{
-  if (win_info != NULL)
-    win_info->clear_detail ();
+  data_content = NULL;
+  data_content_count = 0;
+  regs_content = NULL;
+  regs_content_count = 0;
+  regs_column_count = 1;
+  display_regs = false;
 }
 
-
 /* Accessor for the source execution info ptr.  */
 struct tui_gen_win_info *
 tui_source_exec_info_win_ptr (void)
@@ -507,30 +485,8 @@ tui_source_window_base::tui_source_window_base (enum tui_win_type type)
   : tui_win_info (type)
 {
   gdb_assert (type == SRC_WIN || type == DISASSEM_WIN);
-  detail.source_info.execution_info = NULL;
-  detail.source_info.has_locator = FALSE;
-  detail.source_info.horizontal_offset = 0;
-  detail.source_info.gdbarch = NULL;
-  detail.source_info.start_line_or_addr.loa = LOA_ADDRESS;
-  detail.source_info.start_line_or_addr.u.addr = 0;
-  detail.source_info.fullname = NULL;
-}
-
-tui_data_window::tui_data_window ()
-  : tui_win_info (DATA_WIN)
-{
-  detail.data_display_info.data_content = (tui_win_content) NULL;
-  detail.data_display_info.data_content_count = 0;
-  detail.data_display_info.regs_content = (tui_win_content) NULL;
-  detail.data_display_info.regs_content_count = 0;
-  detail.data_display_info.regs_column_count = 1;
-  detail.data_display_info.display_regs = FALSE;
-  detail.data_display_info.current_group = 0;
-}
-
-tui_cmd_window::tui_cmd_window ()
-  : tui_win_info (CMD_WIN)
-{
+  start_line_or_addr.loa = LOA_ADDRESS;
+  start_line_or_addr.u.addr = 0;
 }
 
 struct tui_win_info *
@@ -621,12 +577,8 @@ tui_add_content_elements (struct tui_gen_win_info *win_info,
 
 tui_source_window_base::~tui_source_window_base ()
 {
-  if (detail.source_info.fullname)
-    {
-      xfree (detail.source_info.fullname);
-      detail.source_info.fullname = NULL;
-    }
-  struct tui_gen_win_info *generic_win = detail.source_info.execution_info;
+  xfree (fullname);
+  struct tui_gen_win_info *generic_win = execution_info;
   if (generic_win != NULL)
     {
       tui_delete_win (generic_win->handle);
@@ -639,16 +591,14 @@ tui_data_window::~tui_data_window ()
 {
   if (generic.content != NULL)
     {
-      tui_free_data_content (detail.data_display_info.regs_content,
-                            detail.data_display_info.regs_content_count);
-      detail.data_display_info.regs_content = NULL;
-      detail.data_display_info.regs_content_count = 0;
-      tui_free_data_content (detail.data_display_info.data_content,
-                            detail.data_display_info.data_content_count);
-      detail.data_display_info.data_content = NULL;
-      detail.data_display_info.data_content_count = 0;
-      detail.data_display_info.regs_column_count = 1;
-      detail.data_display_info.display_regs = FALSE;
+      tui_free_data_content (regs_content, regs_content_count);
+      regs_content = NULL;
+      regs_content_count = 0;
+      tui_free_data_content (data_content, data_content_count);
+      data_content = NULL;
+      data_content_count = 0;
+      regs_column_count = 1;
+      display_regs = false;
       generic.content = NULL;
       generic.content_size = 0;
     }
@@ -673,7 +623,8 @@ tui_free_all_source_wins_content ()
   for (tui_win_info *win_info : tui_source_windows ())
     {
       tui_free_win_content (&(win_info->generic));
-      tui_free_win_content (win_info->detail.source_info.execution_info);
+      tui_source_window_base *base = (tui_source_window_base *) win_info;
+      tui_free_win_content (base->execution_info);
     }
 }
 
This page took 0.025561 seconds and 4 git commands to generate.