diff options
author | Tom Tromey <tom@tromey.com> | 2019-06-16 10:49:45 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-06-25 07:48:27 -0600 |
commit | b4eb24524b5838141bd3c3998afc81f65302eca1 (patch) | |
tree | 84e51fcd92583a8f1f751ee7d0a49f47544967f5 /gdb | |
parent | 8761a91b2614304963bfe211ff8c682c7eba3b51 (diff) | |
download | gdb-b4eb24524b5838141bd3c3998afc81f65302eca1.zip gdb-b4eb24524b5838141bd3c3998afc81f65302eca1.tar.gz gdb-b4eb24524b5838141bd3c3998afc81f65302eca1.tar.bz2 |
Remove tui_list
This removes the tui_list type in favor of a std::vector.
gdb/ChangeLog
2019-06-25 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.c (tui_display_main)
(tui_update_source_windows_with_addr)
(tui_update_all_breakpoint_info): Update.
* tui/tui-win.c (tui_resize_all, tui_adjust_win_heights)
(new_height_ok, parse_scrolling_args): Update.
* tui/tui-stack.c (tui_show_frame_info): Update.
* tui/tui-data.h (struct tui_list): Remove.
(tui_source_windows): Return a reference to a std::vector.
* tui/tui-data.c (source_windows): Now a std::vector.
(tui_source_windows): Change return type.
(tui_clear_source_windows): Rewrite.
(tui_clear_source_windows_detail, tui_add_to_source_windows)
(tui_free_all_source_wins_content): Rewrite.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 16 | ||||
-rw-r--r-- | gdb/tui/tui-data.c | 42 | ||||
-rw-r--r-- | gdb/tui/tui-data.h | 10 | ||||
-rw-r--r-- | gdb/tui/tui-stack.c | 10 | ||||
-rw-r--r-- | gdb/tui/tui-win.c | 14 | ||||
-rw-r--r-- | gdb/tui/tui-winsource.c | 19 |
6 files changed, 47 insertions, 64 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cf6dff8..412c442 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,21 @@ 2019-06-25 Tom Tromey <tom@tromey.com> + * tui/tui-winsource.c (tui_display_main) + (tui_update_source_windows_with_addr) + (tui_update_all_breakpoint_info): Update. + * tui/tui-win.c (tui_resize_all, tui_adjust_win_heights) + (new_height_ok, parse_scrolling_args): Update. + * tui/tui-stack.c (tui_show_frame_info): Update. + * tui/tui-data.h (struct tui_list): Remove. + (tui_source_windows): Return a reference to a std::vector. + * tui/tui-data.c (source_windows): Now a std::vector. + (tui_source_windows): Change return type. + (tui_clear_source_windows): Rewrite. + (tui_clear_source_windows_detail, tui_add_to_source_windows) + (tui_free_all_source_wins_content): Rewrite. + +2019-06-25 Tom Tromey <tom@tromey.com> + * tui/tui-data.h (struct tui_win_info, struct tui_source_window) (struct tui_data_window, struct tui_cmd_window): Declare clear_detail method. diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c index 9923a2f..d9b8bd6 100644 --- a/gdb/tui/tui-data.c +++ b/gdb/tui/tui-data.c @@ -38,8 +38,7 @@ static enum tui_layout_type current_layout = UNDEFINED_LAYOUT; static int term_height, term_width; static struct tui_gen_win_info _locator; static struct tui_gen_win_info exec_info[2]; -static struct tui_win_info *src_win_list[2]; -static struct tui_list source_windows = {src_win_list, 0}; +static std::vector<tui_win_info *> source_windows; static struct tui_win_info *win_with_focus = NULL; static struct tui_layout_def layout_def = { SRC_WIN, /* DISPLAY_MODE */ @@ -138,10 +137,10 @@ tui_set_win_with_focus (struct tui_win_info *win_info) /* Accessor for the current source window. Usually there is only one source window (either source or disassembly), but both can be displayed at the same time. */ -struct tui_list * -tui_source_windows (void) +std::vector<tui_win_info *> & +tui_source_windows () { - return &source_windows; + return source_windows; } @@ -149,22 +148,18 @@ tui_source_windows (void) window (either source or disassembly), but both can be displayed at the same time. */ void -tui_clear_source_windows (void) +tui_clear_source_windows () { - source_windows.list[0] = NULL; - source_windows.list[1] = NULL; - source_windows.count = 0; + source_windows.clear (); } /* Clear the pertinant detail in the source windows. */ void -tui_clear_source_windows_detail (void) +tui_clear_source_windows_detail () { - int i; - - for (i = 0; i < (tui_source_windows ())->count; i++) - tui_clear_win_detail ((tui_source_windows ())->list[i]); + for (tui_win_info *win : tui_source_windows ()) + tui_clear_win_detail (win); } @@ -174,8 +169,8 @@ tui_clear_source_windows_detail (void) void tui_add_to_source_windows (struct tui_win_info *win_info) { - if (source_windows.count < 2) - source_windows.list[source_windows.count++] = win_info; + if (source_windows.size () < 2) + source_windows.push_back (win_info); } /* See tui-data.h. */ @@ -675,19 +670,12 @@ tui_win_info::~tui_win_info () void -tui_free_all_source_wins_content (void) +tui_free_all_source_wins_content () { - int i; - - for (i = 0; i < (tui_source_windows ())->count; i++) + for (tui_win_info *win_info : tui_source_windows ()) { - struct tui_win_info *win_info = (tui_source_windows ())->list[i]; - - if (win_info != NULL) - { - tui_free_win_content (&(win_info->generic)); - tui_free_win_content (win_info->detail.source_info.execution_info); - } + tui_free_win_content (&(win_info->generic)); + tui_free_win_content (win_info->detail.source_info.execution_info); } } diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h index 5006604..8008893 100644 --- a/gdb/tui/tui-data.h +++ b/gdb/tui/tui-data.h @@ -102,14 +102,6 @@ enum tui_scroll_direction }; -/* General list struct. */ -struct tui_list -{ - struct tui_win_info **list; - int count; -}; - - /* The kinds of layouts available. */ enum tui_layout_type { @@ -360,7 +352,7 @@ extern void tui_set_term_width_to (int); extern struct tui_gen_win_info *tui_locator_win_info_ptr (void); extern struct tui_gen_win_info *tui_source_exec_info_win_ptr (void); extern struct tui_gen_win_info *tui_disassem_exec_info_win_ptr (void); -extern struct tui_list *tui_source_windows (void); +extern std::vector<tui_win_info *> &tui_source_windows (); extern void tui_clear_source_windows (void); extern void tui_clear_source_windows_detail (void); extern void tui_clear_win_detail (struct tui_win_info *); diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c index b7e7ae8..d09acd2 100644 --- a/gdb/tui/tui-stack.c +++ b/gdb/tui/tui-stack.c @@ -360,12 +360,11 @@ tui_update_locator_fullname (const char *fullname) int tui_show_frame_info (struct frame_info *fi) { - struct tui_win_info *win_info; int locator_changed_p; if (fi) { - int start_line, i; + int start_line; CORE_ADDR low; struct tui_gen_win_info *locator = tui_locator_win_info_ptr (); int source_already_displayed; @@ -397,12 +396,10 @@ tui_show_frame_info (struct frame_info *fi) tui_show_locator_content (); start_line = 0; - for (i = 0; i < (tui_source_windows ())->count; i++) + for (struct tui_win_info *win_info : tui_source_windows ()) { union tui_which_element *item; - win_info = (tui_source_windows ())->list[i]; - item = &locator->content[0]->which_element; if (win_info == TUI_SRC_WIN) { @@ -475,9 +472,8 @@ tui_show_frame_info (struct frame_info *fi) return 0; tui_show_locator_content (); - for (int i = 0; i < (tui_source_windows ())->count; i++) + for (struct tui_win_info *win_info : tui_source_windows ()) { - win_info = (tui_source_windows ())->list[i]; tui_clear_source_content (win_info, EMPTY_SOURCE_PROMPT); tui_update_exec_info (win_info); } diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c index a69e087..21a9946 100644 --- a/gdb/tui/tui-win.c +++ b/gdb/tui/tui-win.c @@ -686,7 +686,7 @@ tui_resize_all (void) { case SRC_COMMAND: case DISASSEM_COMMAND: - first_win = tui_source_windows ()->list[0]; + first_win = tui_source_windows ()[0]; first_win->generic.width += width_diff; locator->width += width_diff; /* Check for invalid heights. */ @@ -723,7 +723,7 @@ tui_resize_all (void) { first_win = TUI_DATA_WIN; first_win->generic.width += width_diff; - second_win = tui_source_windows ()->list[0]; + second_win = tui_source_windows ()[0]; second_win->generic.width += width_diff; } /* Change the first window's height/width. */ @@ -1204,7 +1204,7 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info, make_invisible_and_set_new_height (primary_win_info, new_height); if (primary_win_info->generic.type == CMD_WIN) { - win_info = (tui_source_windows ())->list[0]; + win_info = tui_source_windows ()[0]; src_win_info = win_info; } else @@ -1233,7 +1233,7 @@ tui_adjust_win_heights (struct tui_win_info *primary_win_info, else { first_win = TUI_DATA_WIN; - second_win = (tui_source_windows ())->list[0]; + second_win = tui_source_windows ()[0]; } if (primary_win_info == TUI_CMD_WIN) { /* Split the change in height accross the 1st & 2nd @@ -1490,7 +1490,7 @@ new_height_ok (struct tui_win_info *primary_win_info, struct tui_win_info *win_info; if (primary_win_info == TUI_CMD_WIN) - win_info = (tui_source_windows ())->list[0]; + win_info = tui_source_windows ()[0]; else win_info = TUI_CMD_WIN; ok = ((new_height + @@ -1511,7 +1511,7 @@ new_height_ok (struct tui_win_info *primary_win_info, else { first_win = TUI_DATA_WIN; - second_win = (tui_source_windows ())->list[0]; + second_win = tui_source_windows ()[0]; } /* We could simply add all the heights to obtain the same result but below is more explicit since we subtract 1 for @@ -1637,7 +1637,7 @@ parse_scrolling_args (const char *arg, error (_("Invalid window specified. \n\ The window name specified must be valid and visible.\n")); else if (*win_to_scroll == TUI_CMD_WIN) - *win_to_scroll = (tui_source_windows ())->list[0]; + *win_to_scroll = tui_source_windows ()[0]; } } } diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c index eab422d..20f39c4 100644 --- a/gdb/tui/tui-winsource.c +++ b/gdb/tui/tui-winsource.c @@ -42,9 +42,9 @@ /* Function to display the "main" routine. */ void -tui_display_main (void) +tui_display_main () { - if ((tui_source_windows ())->count > 0) + if (!tui_source_windows ().empty ()) { struct gdbarch *gdbarch; CORE_ADDR addr; @@ -159,12 +159,8 @@ tui_update_source_windows_with_addr (struct gdbarch *gdbarch, CORE_ADDR addr) } else { - int i; - - for (i = 0; i < (tui_source_windows ())->count; i++) + for (struct tui_win_info *win_info : tui_source_windows ()) { - struct tui_win_info *win_info = (tui_source_windows ())->list[i]; - tui_clear_source_content (win_info, EMPTY_SOURCE_PROMPT); tui_clear_exec_info_content (win_info); } @@ -406,15 +402,10 @@ tui_set_is_exec_point_at (struct tui_line_or_address l, This is called whenever a breakpoint is inserted, removed or has its state changed. */ void -tui_update_all_breakpoint_info (void) +tui_update_all_breakpoint_info () { - struct tui_list *list = tui_source_windows (); - int i; - - for (i = 0; i < list->count; i++) + for (tui_win_info *win : tui_source_windows ()) { - struct tui_win_info *win = list->list[i]; - if (tui_update_breakpoint_info (win, FALSE)) { tui_update_exec_info (win); |