[PATCH 16/66] Remove struct tui_command_info

Tom Tromey
2019-06-23T22:44:01Z

Like the previous patch, this removes tui_command_info in favor of
putting it elements directly into tui_cmd_window.

gdb/ChangeLog
2019-06-23 Tom Tromey <tom@tromey.com>

* tui/tui-layout.c (show_source_disasm_command)
(show_source_or_disasm_and_command): Update.
* tui/tui-io.c (update_cmdwin_start_line)
(tui_redisplay_readline): Update.
* tui/tui-data.h (struct tui_command_info): Remove.
(struct tui_win_info) <detail>: Remove command_info member.
(struct tui_data_window) <start_line>: New member, from
tui_command_info.
(TUI_CMD_WIN): Add casts.
---
gdb/ChangeLog | 12 ++++++++++++
gdb/tui/tui-data.h | 11 +++--------
gdb/tui/tui-io.c | 10 +++++-----
gdb/tui/tui-layout.c | 7 ++++---
4 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index 081022a2495..4ca3a89b74e 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -238,12 +238,6 @@ struct tui_data_info
};

-struct tui_command_info
-{
- int start_line;
-};
-
-
/* This defines information about each logical window. */
struct tui_win_info
{
@@ -287,7 +281,6 @@ public:
union
{
struct tui_data_info data_display_info;
- struct tui_command_info command_info;
}
detail;

@@ -395,6 +388,8 @@ struct tui_cmd_window : public tui_win_info

void clear_detail () override;

+ int start_line;
+
protected:

void do_scroll_vertical (enum tui_scroll_direction,
@@ -420,7 +415,7 @@ extern struct tui_win_info *tui_win_list[MAX_MAJOR_WINDOWS];
#define TUI_SRC_WIN ((tui_source_window_base *) tui_win_list[SRC_WIN])
#define TUI_DISASM_WIN ((tui_source_window_base *) tui_win_list[DISASSEM_WIN])
#define TUI_DATA_WIN tui_win_list[DATA_WIN]
-#define TUI_CMD_WIN tui_win_list[CMD_WIN]
+#define TUI_CMD_WIN ((tui_cmd_window *) tui_win_list[CMD_WIN])

/* Data Manipulation Functions. */
extern void tui_initialize_static_data (void);
diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c
index 31c1c769381..cdb14bf5314 100644
--- a/gdb/tui/tui-io.c
+++ b/gdb/tui/tui-io.c
@@ -179,7 +179,7 @@ do_tui_putc (WINDOW *w, char c)
static void
update_cmdwin_start_line ()
{
- TUI_CMD_WIN->detail.command_info.start_line
+ TUI_CMD_WIN->start_line
= getcury (TUI_CMD_WIN->generic.handle);
}

@@ -539,7 +539,7 @@ tui_redisplay_readline (void)
c_pos = -1;
c_line = -1;
w = TUI_CMD_WIN->generic.handle;
- start_line = TUI_CMD_WIN->detail.command_info.start_line;
+ start_line = TUI_CMD_WIN->start_line;
wmove (w, start_line, 0);
prev_col = 0;
height = 1;
@@ -580,17 +580,17 @@ tui_redisplay_readline (void)
waddch (w, c);
}
if (c == '\n')
- TUI_CMD_WIN->detail.command_info.start_line = getcury (w);
+ TUI_CMD_WIN->start_line = getcury (w);
col = getcurx (w);
if (col < prev_col)
height++;
prev_col = col;
}
wclrtobot (w);
- TUI_CMD_WIN->detail.command_info.start_line = getcury (w);
+ TUI_CMD_WIN->start_line = getcury (w);
if (c_line >= 0)
wmove (w, c_line, c_pos);
- TUI_CMD_WIN->detail.command_info.start_line -= height - 1;
+ TUI_CMD_WIN->start_line -= height - 1;

wrefresh (w);
fflush(stdout);
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 55d737ab315..95b89f8583a 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -692,8 +692,8 @@ show_source_disasm_command (void)
tui_show_source_content (TUI_DISASM_WIN);

if (TUI_CMD_WIN == NULL)
- TUI_CMD_WIN = make_command_window (cmd_height,
- tui_term_height () - cmd_height);
+ tui_win_list[CMD_WIN]
+ = make_command_window (cmd_height, tui_term_height () - cmd_height);
else
{
init_gen_win_info (&TUI_CMD_WIN->generic,
@@ -958,7 +958,8 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type)

if (TUI_CMD_WIN == NULL)
{
- TUI_CMD_WIN = make_command_window (cmd_height, src_height);
+ tui_win_list[CMD_WIN] = make_command_window (cmd_height,
+ src_height);
tui_refresh_win (&TUI_CMD_WIN->generic);
}
else
--
2.17.2