Introduce tui_data_window::last_regs_line_no method
authorTom Tromey <tom@tromey.com>
Wed, 26 Jun 2019 21:44:51 +0000 (15:44 -0600)
committerTom Tromey <tom@tromey.com>
Wed, 17 Jul 2019 18:18:53 +0000 (12:18 -0600)
This changes tui_last_regs_line_no into a method on tui_data_window,
allowing the removal of uses of the TUI_DATA_WIN global.

gdb/ChangeLog
2019-07-17  Tom Tromey  <tom@tromey.com>

* tui/tui-regs.h (tui_last_regs_line_no): Don't declare.
* tui/tui-regs.c (tui_data_window::last_regs_line_no): Rename from
tui_last_regs_line_no.
(tui_display_reg_element_at_line)
(tui_display_registers_from_line): Update.
* tui/tui-data.h (struct tui_data_window) <last_regs_line_no>: New
method.

gdb/ChangeLog
gdb/tui/tui-data.h
gdb/tui/tui-regs.c
gdb/tui/tui-regs.h

index 6635cbf..b63b9e9 100644 (file)
@@ -1,5 +1,15 @@
 2019-07-17  Tom Tromey  <tom@tromey.com>
 
+       * tui/tui-regs.h (tui_last_regs_line_no): Don't declare.
+       * tui/tui-regs.c (tui_data_window::last_regs_line_no): Rename from
+       tui_last_regs_line_no.
+       (tui_display_reg_element_at_line)
+       (tui_display_registers_from_line): Update.
+       * tui/tui-data.h (struct tui_data_window) <last_regs_line_no>: New
+       method.
+
+2019-07-17  Tom Tromey  <tom@tromey.com>
+
        PR tui/24722:
        * tui/tui-winsource.h (tui_update_all_breakpoint_info)
        (tui_update_breakpoint_info): Add "being_deleted" parameter.
index 6a243c3..9b1e892 100644 (file)
@@ -490,6 +490,10 @@ struct tui_data_window : public tui_win_info
   bool display_regs = false;
   struct reggroup *current_group = nullptr;
 
+  /* Answer the number of the last line in the regs display.  If there
+     are no registers (-1) is returned.  */
+  int last_regs_line_no () const;
+
 protected:
 
   void do_scroll_vertical (int num_to_scroll) override;
index 32e82b2..e9fbf4b 100644 (file)
@@ -63,18 +63,17 @@ static enum tui_status tui_get_register (struct frame_info *frame,
 ** PUBLIC FUNCTIONS                     **
 ******************************************/
 
-/* Answer the number of the last line in the regs display.  If there
-   are no registers (-1) is returned.  */
+/* See tui-data.h.  */
+
 int
-tui_last_regs_line_no (void)
+tui_data_window::last_regs_line_no () const
 {
   int num_lines = (-1);
 
-  if (!TUI_DATA_WIN->regs_content.empty ())
+  if (!regs_content.empty ())
     {
-      num_lines = (TUI_DATA_WIN->regs_content.size ()
-                  / TUI_DATA_WIN->regs_column_count);
-      if (TUI_DATA_WIN->regs_content.size () % TUI_DATA_WIN->regs_column_count)
+      num_lines = regs_content.size () / regs_column_count;
+      if (regs_content.size () % regs_column_count)
        num_lines++;
     }
   return num_lines;
@@ -354,7 +353,7 @@ tui_display_reg_element_at_line (int start_element_no,
        {
          int last_line_no, first_line_on_last_page;
 
-         last_line_no = tui_last_regs_line_no ();
+         last_line_no = TUI_DATA_WIN->last_regs_line_no ();
          first_line_on_last_page
            = last_line_no - (TUI_DATA_WIN->height - 2);
          if (first_line_on_last_page < 0)
@@ -390,7 +389,7 @@ tui_display_registers_from_line (int line_no,
        { /* If we must display regs (force_display is true), then
             make sure that we don't display off the end of the
             registers.  */
-         if (line_no >= tui_last_regs_line_no ())
+         if (line_no >= TUI_DATA_WIN->last_regs_line_no ())
            {
              if ((line = tui_line_from_reg_element_no (
                 TUI_DATA_WIN->regs_content.size () - 1)) < 0)
index 54b1b08..fcb440d 100644 (file)
@@ -28,7 +28,6 @@ extern void tui_check_register_values (struct frame_info *);
 extern void tui_show_registers (struct reggroup *group);
 extern void tui_display_registers_from (int);
 extern int tui_display_registers_from_line (int, int);
-extern int tui_last_regs_line_no (void);
 extern int tui_first_reg_element_inline (int);
 extern int tui_line_from_reg_element_no (int);
 extern int tui_first_reg_element_no_inline (int lineno);