From patchwork Sun Aug 18 17:27:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 34169 Received: (qmail 77725 invoked by alias); 18 Aug 2019 17:27:49 -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 77576 invoked by uid 89); 18 Aug 2019 17:27:45 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-19.7 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=396, 7, 3967, 3017 X-HELO: gateway22.websitewelcome.com Received: from gateway22.websitewelcome.com (HELO gateway22.websitewelcome.com) (192.185.47.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 18 Aug 2019 17:27:42 +0000 Received: from cm11.websitewelcome.com (cm11.websitewelcome.com [100.42.49.5]) by gateway22.websitewelcome.com (Postfix) with ESMTP id B938A2F86 for ; Sun, 18 Aug 2019 12:27:40 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id zOxwhZKwfdnCezOxwhywS7; Sun, 18 Aug 2019 12:27:40 -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=SP1lIAiJQud3ersHAglAU82noVLOf/YFqitdH8/TVrI=; b=I3tPkMrQWzy0bCrCpOq+HLAIiA Z3bR9IObhw3Fa1OTfEMMxYLltvrutk5HXxyK/HPE1ahG0Ll4hNBmwW0KeQKPSLAf3T57rWTejgUSO E6X4vmfif7ELNkX+t3YV4dB9g; Received: from 97-122-178-82.hlrn.qwest.net ([97.122.178.82]:44512 helo=bapiya.Home) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92) (envelope-from ) id 1hzOxw-002aYY-GU; Sun, 18 Aug 2019 12:27:40 -0500 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH 09/14] Remove indirection from tui_data_window::regs_content Date: Sun, 18 Aug 2019 11:27:30 -0600 Message-Id: <20190818172735.17477-10-tom@tromey.com> In-Reply-To: <20190818172735.17477-1-tom@tromey.com> References: <20190818172735.17477-1-tom@tromey.com> tui_data_window::regs_content is currently a vector of unique_ptr. However, due to the way this is managed now, there is no need to keep the pointers -- it can simply be a vector of the objects themselves. This patch removes this extra layer of indirection. gdb/ChangeLog 2019-08-18 Tom Tromey * tui/tui-regs.h (struct tui_data_window): Use DISABLE_COPY_AND_ASSIGN. : Change type, removing unique_ptr. : Add move constructor. * tui/tui-regs.c (tui_data_window::show_registers) (tui_data_window::show_register_group) (tui_data_window::display_registers_from) (tui_data_window::display_registers_from) (tui_data_window::first_data_item_displayed) (tui_data_window::delete_data_content_windows) (tui_data_window::rerender, tui_data_window::refresh_window) (tui_data_window::check_register_values): Update. --- gdb/ChangeLog | 15 ++++++++++++++ gdb/tui/tui-regs.c | 51 ++++++++++++++++------------------------------ gdb/tui/tui-regs.h | 6 +++++- 3 files changed, 38 insertions(+), 34 deletions(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index 8adfb1520a2..675e1867d4b 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -163,10 +163,7 @@ tui_data_window::show_registers (struct reggroup *group) /* Clear all notation of changed values. */ for (auto &&data_item_win : regs_content) - { - if (data_item_win != nullptr) - data_item_win->highlight = false; - } + data_item_win.highlight = false; current_group = group; display_all_data (); } @@ -214,16 +211,7 @@ tui_data_window::show_register_group (struct reggroup *group, nr_regs++; } - if (!refresh_values_only) - regs_content.clear (); - - if (nr_regs < regs_content.size ()) - regs_content.resize (nr_regs); - else - { - for (int i = regs_content.size (); i < nr_regs; ++i) - regs_content.emplace_back (new tui_data_item_window ()); - } + regs_content.resize (nr_regs); /* Now set the register names and values. */ pos = 0; @@ -242,7 +230,7 @@ tui_data_window::show_register_group (struct reggroup *group, if (name == 0 || *name == '\0') continue; - data_item_win = regs_content[pos].get (); + data_item_win = ®s_content[pos]; if (data_item_win) { if (!refresh_values_only) @@ -273,7 +261,7 @@ tui_data_window::display_registers_from (int start_element_no) int len; len = 0; - p = data_item_win->content.get (); + p = data_item_win.content.get (); if (p != 0) len = strlen (p); @@ -301,7 +289,7 @@ tui_data_window::display_registers_from (int start_element_no) struct tui_data_item_window *data_item_win; /* Create the window if necessary. */ - data_item_win = regs_content[i].get (); + data_item_win = ®s_content[i]; if (data_item_win->handle != NULL && (data_item_win->height != 1 || data_item_win->width != item_win_width @@ -408,7 +396,7 @@ tui_data_window::first_data_item_displayed () { struct tui_gen_win_info *data_item_win; - data_item_win = regs_content[i].get (); + data_item_win = ®s_content[i]; if (data_item_win->is_visible ()) return i; } @@ -423,8 +411,8 @@ tui_data_window::delete_data_content_windows () { for (auto &&win : regs_content) { - tui_delete_win (win->handle); - win->handle = NULL; + tui_delete_win (win.handle); + win.handle = NULL; } } @@ -523,8 +511,8 @@ tui_data_window::rerender () /* Delete all data item windows. */ for (auto &&win : regs_content) { - tui_delete_win (win->handle); - win->handle = NULL; + tui_delete_win (win.handle); + win.handle = NULL; } display_all_data (); } @@ -536,10 +524,7 @@ tui_data_window::refresh_window () { tui_gen_win_info::refresh_window (); for (auto &&win : regs_content) - { - if (win != NULL) - win->refresh_window (); - } + win.refresh_window (); } /* This function check all displayed registers for changes in values, @@ -552,18 +537,18 @@ tui_data_window::check_register_values (struct frame_info *frame) show_registers (current_group); else { - for (auto &&data_item_win_ptr : regs_content) + for (auto &&data_item_win : regs_content) { int was_hilighted; - was_hilighted = data_item_win_ptr->highlight; + was_hilighted = data_item_win.highlight; - tui_get_register (frame, data_item_win_ptr.get (), - data_item_win_ptr->item_no, - &data_item_win_ptr->highlight); + tui_get_register (frame, &data_item_win, + data_item_win.item_no, + &data_item_win.highlight); - if (data_item_win_ptr->highlight || was_hilighted) - tui_display_register (data_item_win_ptr.get ()); + if (data_item_win.highlight || was_hilighted) + tui_display_register (&data_item_win); } } } diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h index e07abeda64d..24ec587ea2e 100644 --- a/gdb/tui/tui-regs.h +++ b/gdb/tui/tui-regs.h @@ -33,6 +33,10 @@ struct tui_data_item_window : public tui_gen_win_info { } + DISABLE_COPY_AND_ASSIGN (tui_data_item_window); + + tui_data_item_window (tui_data_item_window &&) = default; + const char *name = nullptr; /* The register number, or data display number. */ int item_no = -1; @@ -60,7 +64,7 @@ struct tui_data_window : public tui_win_info } /* Windows that are used to display registers. */ - std::vector> regs_content; + std::vector regs_content; int regs_column_count = 0; /* Should regs be displayed at all? */ bool display_regs = false;