From 44f0e208eb32a7ac469cef2b6760f72534abac09 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 16 Jun 2019 11:37:49 -0600 Subject: [PATCH] Introduce has_locator method This changes tui_win_has_locator to be a method on tui_win_info, and changes the locator code to use bool rather than int. gdb/ChangeLog 2019-06-25 Tom Tromey * tui/tui-win.c (make_invisible_and_set_new_height) (make_visible_with_new_height): Call has_locator method. * tui/tui-layout.c (show_source_disasm_command, show_data) (show_source_or_disasm_and_command): Update for bool change. * tui/tui-data.h (struct tui_source_info) : Now bool. (tui_win_info) : New method. (struct tui_source_window_base) : New method. (tui_win_has_locator): Don't declare. * tui/tui-data.c (tui_source_window_base::has_locator): Rename from tui_win_has_locator. (tui_source_window_base): Use false, not FALSE. --- gdb/ChangeLog | 14 ++++++++++++++ gdb/tui/tui-data.c | 11 ++++++----- gdb/tui/tui-data.h | 13 +++++++++++-- gdb/tui/tui-layout.c | 14 +++++++------- gdb/tui/tui-win.c | 4 ++-- 5 files changed, 40 insertions(+), 16 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 18bffd1e3a9..5bee65ae156 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,17 @@ +2019-06-25 Tom Tromey + + * tui/tui-win.c (make_invisible_and_set_new_height) + (make_visible_with_new_height): Call has_locator method. + * tui/tui-layout.c (show_source_disasm_command, show_data) + (show_source_or_disasm_and_command): Update for bool change. + * tui/tui-data.h (struct tui_source_info) : Now bool. + (tui_win_info) : New method. + (struct tui_source_window_base) : New method. + (tui_win_has_locator): Don't declare. + * tui/tui-data.c (tui_source_window_base::has_locator): Rename + from tui_win_has_locator. + (tui_source_window_base): Use false, not FALSE. + 2019-06-25 Tom Tromey * tui/tui-data.h (tui_clear_win_detail): Don't declare. diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c index 1e1bc0362a9..be170612263 100644 --- a/gdb/tui/tui-data.c +++ b/gdb/tui/tui-data.c @@ -75,11 +75,12 @@ 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) +/* See tui-data.h. */ + +bool +tui_source_window_base::has_locator () const { - return (win_info != NULL - && win_info->detail.source_info.has_locator); + return detail.source_info.has_locator; } void @@ -499,7 +500,7 @@ tui_source_window_base::tui_source_window_base (enum tui_win_type type) { gdb_assert (type == SRC_WIN || type == DISASSEM_WIN); detail.source_info.execution_info = NULL; - detail.source_info.has_locator = FALSE; + 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; diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h index c4ef455f2aa..9b7364b1e85 100644 --- a/gdb/tui/tui-data.h +++ b/gdb/tui/tui-data.h @@ -240,7 +240,8 @@ struct tui_data_info struct tui_source_info { - int has_locator; /* Does locator belongs to this window? */ + /* Does the locator belong to this window? */ + bool has_locator; /* Execution information window. */ struct tui_gen_win_info *execution_info; int horizontal_offset; /* Used for horizontal scroll. */ @@ -285,6 +286,12 @@ struct tui_win_info /* Clear the pertinent detail in the window. */ virtual void clear_detail () = 0; + /* Return true if this window has the locator. */ + virtual bool has_locator () const + { + return false; + } + /* Methods to scroll the contents of this window. Note that they are named with "_scroll" coming at the end because the more obvious "scroll_forward" is defined as a macro in term.h. */ @@ -325,6 +332,9 @@ struct tui_source_window_base : public tui_win_info public: void clear_detail () override; + + /* Return true if this window has the locator. */ + bool has_locator () const override; }; /* A TUI source window. */ @@ -401,7 +411,6 @@ struct tui_cmd_window : public tui_win_info extern int tui_win_is_source_type (enum tui_win_type win_type); extern int tui_win_is_auxillary (enum tui_win_type win_type); -extern int tui_win_has_locator (struct tui_win_info *win_info); extern void tui_set_win_highlight (struct tui_win_info *win_info, int highlight); diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c index 8c3ece0eef8..f4df49253af 100644 --- a/gdb/tui/tui-layout.c +++ b/gdb/tui/tui-layout.c @@ -640,7 +640,7 @@ show_source_disasm_command (void) 0); tui_make_visible (&TUI_SRC_WIN->generic); tui_make_visible (TUI_SRC_WIN->detail.source_info.execution_info); - TUI_SRC_WIN->detail.source_info.has_locator = FALSE;; + TUI_SRC_WIN->detail.source_info.has_locator = false; } struct tui_gen_win_info *locator = tui_locator_win_info_ptr (); @@ -667,7 +667,7 @@ show_source_disasm_command (void) tui_term_width (), 0, (src_height + asm_height) - 1); - TUI_DISASM_WIN->detail.source_info.has_locator = TRUE; + TUI_DISASM_WIN->detail.source_info.has_locator = true; init_gen_win_info (&TUI_DISASM_WIN->generic, TUI_DISASM_WIN->generic.type, asm_height, @@ -684,8 +684,8 @@ show_source_disasm_command (void) tui_make_visible (&TUI_DISASM_WIN->generic); tui_make_visible (TUI_DISASM_WIN->detail.source_info.execution_info); } - TUI_SRC_WIN->detail.source_info.has_locator = FALSE; - TUI_DISASM_WIN->detail.source_info.has_locator = TRUE; + TUI_SRC_WIN->detail.source_info.has_locator = false; + TUI_DISASM_WIN->detail.source_info.has_locator = true; tui_make_visible (locator); tui_show_locator_content (); tui_show_source_content (TUI_DISASM_WIN); @@ -772,7 +772,7 @@ show_data (enum tui_layout_type new_layout) 0, total_height - 1); } - tui_win_list[win_type]->detail.source_info.has_locator = TRUE; + tui_win_list[win_type]->detail.source_info.has_locator = true; tui_make_visible (locator); tui_show_locator_content (); tui_add_to_source_windows (tui_win_list[win_type]); @@ -924,7 +924,7 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type) tui_term_width (), 0, src_height - 1); - (*win_info_ptr)->detail.source_info.has_locator = TRUE; + (*win_info_ptr)->detail.source_info.has_locator = true; init_gen_win_info (&(*win_info_ptr)->generic, (*win_info_ptr)->generic.type, src_height - 1, @@ -943,7 +943,7 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type) } if ((*win_info_ptr) != NULL) { - (*win_info_ptr)->detail.source_info.has_locator = TRUE; + (*win_info_ptr)->detail.source_info.has_locator = true; tui_make_visible (locator); tui_show_locator_content (); tui_show_source_content (*win_info_ptr); diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c index 4dad1443352..5c807ad0324 100644 --- a/gdb/tui/tui-win.c +++ b/gdb/tui/tui-win.c @@ -1283,7 +1283,7 @@ make_invisible_and_set_new_height (struct tui_win_info *win_info, if (win_info != TUI_CMD_WIN) gen_win_info->viewport_height--; - if (tui_win_has_locator (win_info)) + if (win_info->has_locator ()) { gen_win_info = tui_locator_win_info_ptr (); tui_make_invisible (gen_win_info); @@ -1355,7 +1355,7 @@ make_visible_with_new_height (struct tui_win_info *win_info) } tui_update_source_window (win_info, gdbarch, s, line, TRUE); } - if (tui_win_has_locator (win_info)) + if (win_info->has_locator ()) { tui_make_visible (tui_locator_win_info_ptr ()); tui_show_locator_content ();