From patchwork Sun Jun 23 22:42:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 33289 Received: (qmail 48064 invoked by alias); 23 Jun 2019 22:43:45 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 47854 invoked by uid 89); 23 Jun 2019 22:43:44 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-20.8 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.1 spammy=heights, 2nd, UD:list, sk:disasse X-HELO: gateway34.websitewelcome.com Received: from gateway34.websitewelcome.com (HELO gateway34.websitewelcome.com) (192.185.149.105) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 23 Jun 2019 22:43:41 +0000 Received: from cm11.websitewelcome.com (cm11.websitewelcome.com [100.42.49.5]) by gateway34.websitewelcome.com (Postfix) with ESMTP id F14FE28E4E for ; Sun, 23 Jun 2019 17:43:39 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id fBD1hwgk2dnCefBD1hWq1Y; Sun, 23 Jun 2019 17:43:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Sender:Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=6U8tsVnk3aXldswTdDMsBGWuw718z+Z8ozB2kbaA4Dc=; b=wum8tFFsygqkyFX9cii+ay5TtL Fw5fMeNv51rkIzDx3OgpmtlrPiyeZIPfWZsNsdrTYF2mTuWL8nECV5q8fVtqXprP/Xu3PbVpVVxqX 0AkmGLDi3H1cuwFpp01kKvcsz; Received: from 75-166-12-78.hlrn.qwest.net ([75.166.12.78]:54396 helo=bapiya.Home) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92) (envelope-from ) id 1hfBD1-000vDQ-PA; Sun, 23 Jun 2019 17:43:39 -0500 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH 08/66] Remove tui_list Date: Sun, 23 Jun 2019 16:42:31 -0600 Message-Id: <20190623224329.16060-9-tom@tromey.com> In-Reply-To: <20190623224329.16060-1-tom@tromey.com> References: <20190623224329.16060-1-tom@tromey.com> This removes the tui_list type in favor of a std::vector. gdb/ChangeLog 2019-06-23 Tom Tromey * 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. --- gdb/ChangeLog | 16 ++++++++++++++++ gdb/tui/tui-data.c | 42 +++++++++++++++-------------------------- gdb/tui/tui-data.h | 10 +--------- gdb/tui/tui-stack.c | 10 +++------- gdb/tui/tui-win.c | 14 +++++++------- gdb/tui/tui-winsource.c | 19 +++++-------------- 6 files changed, 47 insertions(+), 64 deletions(-) diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c index 9923a2fb052..d98f916ac5b 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 struct std::vector 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) +struct std::vector & +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 281729f7deb..d07862f29f8 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 struct std::vector &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 b7e7ae81dff..d09acd28585 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 a69e0878eff..21a9946792e 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 eab422d6cf1..20f39c4fb6e 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);