From fd6c75eecd92ad888cc369489b31d2ed9015130e Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 28 Jun 2019 23:17:24 -0600 Subject: [PATCH] Merge refresh and refresh_window methods Earlier refactorings introduced the refresh and refresh_window methods, following the previous TUI code. However, these methods are essentially the same, so this patch merges them. It also removes some redundant refresh_window calls, because the execution window is updated automatically by the corresponding source (or disassembly) window. gdb/ChangeLog 2019-07-17 Tom Tromey * tui/tui-winsource.c (tui_show_exec_info_content): Don't call refresh_window. * tui/tui-wingeneral.c (tui_gen_win_info::refresh_window): Call touchwin. (tui_data_window::refresh_window): Call refresh_window on data items. Always call superclass refresh_window. (tui_win_info::refresh): Remove. (tui_source_window_base::refresh_window): Update. (tui_refresh_all): Update. * tui/tui-layout.c (show_source_disasm_command): Remove call to refresh_window. (show_source_or_disasm_and_command): Likewise. * tui/tui-data.h (struct tui_win_info) : Remove. (struct tui_source_window_base) : Likewise. --- gdb/ChangeLog | 17 +++++++++++++++++ gdb/tui/tui-data.h | 5 +---- gdb/tui/tui-layout.c | 2 -- gdb/tui/tui-wingeneral.c | 33 +++++++++++---------------------- gdb/tui/tui-winsource.c | 1 - 5 files changed, 29 insertions(+), 29 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5ae3e3502f0..3e7bd9ec129 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,20 @@ +2019-07-17 Tom Tromey + + * tui/tui-winsource.c (tui_show_exec_info_content): Don't call + refresh_window. + * tui/tui-wingeneral.c (tui_gen_win_info::refresh_window): Call + touchwin. + (tui_data_window::refresh_window): Call refresh_window on data + items. Always call superclass refresh_window. + (tui_win_info::refresh): Remove. + (tui_source_window_base::refresh_window): Update. + (tui_refresh_all): Update. + * tui/tui-layout.c (show_source_disasm_command): Remove call to + refresh_window. + (show_source_or_disasm_and_command): Likewise. + * tui/tui-data.h (struct tui_win_info) : Remove. + (struct tui_source_window_base) : Likewise. + 2019-07-17 Tom Tromey * tui/tui-winsource.c (tui_clear_source_content) diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h index 0245031c6cd..fcbb9407281 100644 --- a/gdb/tui/tui-data.h +++ b/gdb/tui/tui-data.h @@ -303,9 +303,6 @@ public: return false; } - /* Refresh this window and any associated windows. */ - virtual void refresh (); - /* Called after all the TUI windows are refreshed, to let this window have a chance to update itself further. */ virtual void refresh_all () @@ -380,7 +377,7 @@ public: } void make_visible (bool visible) override; - void refresh () override; + void refresh_window () override; void refresh_all () override; /* Refill the source window's source cache and update it. If this diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c index a3ded203736..a02c157b87e 100644 --- a/gdb/tui/tui-layout.c +++ b/gdb/tui/tui-layout.c @@ -683,7 +683,6 @@ show_source_disasm_command (void) TUI_CMD_WIN->origin.y); tui_make_visible (TUI_CMD_WIN); } - TUI_CMD_WIN->refresh_window (); tui_set_current_layout_to (SRC_DISASSEM_COMMAND); } } @@ -924,7 +923,6 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type) { tui_win_list[CMD_WIN] = make_command_window (cmd_height, src_height); - TUI_CMD_WIN->refresh_window (); } else { diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c index 22f841eb88c..2902b8006b7 100644 --- a/gdb/tui/tui-wingeneral.c +++ b/gdb/tui/tui-wingeneral.c @@ -37,7 +37,10 @@ void tui_gen_win_info::refresh_window () { if (handle != NULL) - wrefresh (handle); + { + touchwin (handle); + wrefresh (handle); + } } /* See tui-data.h. */ @@ -49,12 +52,11 @@ tui_data_window::refresh_window () { for (auto &&win : regs_content) { - if (win != NULL && win->handle != NULL) - wrefresh (win->handle); + if (win != NULL) + win->refresh_window (); } } - else - tui_gen_win_info::refresh_window (); + tui_gen_win_info::refresh_window (); } /* Function to delete the curses window, checking for NULL. */ @@ -231,20 +233,10 @@ tui_make_all_invisible (void) /* See tui-data.h. */ void -tui_win_info::refresh () -{ - touchwin (handle); - refresh_window (); -} - -/* See tui-data.h. */ - -void -tui_source_window_base::refresh () +tui_source_window_base::refresh_window () { - touchwin (execution_info->handle); execution_info->refresh_window (); - tui_win_info::refresh (); + tui_win_info::refresh_window (); } /* Function to refresh all the windows currently displayed. */ @@ -257,13 +249,10 @@ tui_refresh_all () for (tui_win_info *win_info : all_tui_windows ()) { if (win_info->is_visible) - win_info->refresh (); + win_info->refresh_window (); } if (locator->is_visible) - { - touchwin (locator->handle); - locator->refresh_window (); - } + locator->refresh_window (); } diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c index 39591db2cc9..38d5532912d 100644 --- a/gdb/tui/tui-winsource.c +++ b/gdb/tui/tui-winsource.c @@ -513,7 +513,6 @@ tui_show_exec_info_content (struct tui_source_window_base *win_info) const tui_exec_info_content *content = exec_info->get_content (); werase (exec_info->handle); - exec_info->refresh_window (); for (int cur_line = 1; cur_line <= win_info->content.size (); cur_line++) mvwaddstr (exec_info->handle, cur_line, -- 2.30.2