From patchwork Sun Dec 17 19:50:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 82347 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 12CA838582A9 for ; Sun, 17 Dec 2023 19:51:15 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta38.uswest2.a.cloudfilter.net (omta38.uswest2.a.cloudfilter.net [35.89.44.37]) by sourceware.org (Postfix) with ESMTPS id F340F3858425 for ; Sun, 17 Dec 2023 19:50:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F340F3858425 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org F340F3858425 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.37 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842633; cv=none; b=eqOzQb5XEwdMElx1hlqj858EykFSUgdTDm9kQDj/zhT3/T4orPirJxm9IGt3Qsy2eounWaisVVCawpwTs0+pSlc2KlJcLqfYgxNWWkm36kF0AO9Yz84FPCOs6wk28+v1wXptt+MTDrxodHISNHvHirD9gpjqgWN5Qx1i9f/IDzA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702842633; c=relaxed/simple; bh=P+HYvb1o/Bb5RO4LSGsxHnBMSeWLbNmxcxcIiR2+NP8=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=RwteQBA20SL7LtamFkPKlS1KfKZS/+Ti36W4IxFWcxkBWC33QBDuj3r81P1yt/CjbK38I5ALdfkEVI7yykbRYqcosLV1ACE6rFFy8AOQllGY/zcOMVicQsCT92ynFqSKO4GWcNqfox0XxWIj9Q83P3qoZf0a3eU6y7c8bWy6OFY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6008a.ext.cloudfilter.net ([10.0.30.227]) by cmsmtp with ESMTPS id EaMNruMUVVly7Ex9irVgXn; Sun, 17 Dec 2023 19:50:30 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id Ex9hrfL0I0xkrEx9hrQ2Nk; Sun, 17 Dec 2023 19:50:29 +0000 X-Authority-Analysis: v=2.4 cv=N7U6qkxB c=1 sm=1 tr=0 ts=657f5105 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=e2cXIFwxEfEA:10 a=Qbun_eYptAEA:10 a=B7IstzJxFylA577eagYA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc: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=vyQo4qp0qhzer8/oUd65tpjHR4OPTQY/DdpX7ROXPg0=; b=oQwPg8+9BznVDSEEGhnjF4SreI ezmtQrabLNgHn/7ld1xXGPdhgl8kG3Nn7XdbSJ61ur+G03NuWowYLKWMNJ2O7PoC8oIj62HBV6zz0 IYZOgDJl7xtOBSgNfLrljXbXT; Received: from 71-211-161-25.hlrn.qwest.net ([71.211.161.25]:40716 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1rEx9h-004MyY-0d for gdb-patches@sourceware.org; Sun, 17 Dec 2023 12:50:29 -0700 From: Tom Tromey Date: Sun, 17 Dec 2023 12:50:32 -0700 Subject: [PATCH 07/14] Simplify update_register_data MIME-Version: 1.0 Message-Id: <20231217-tui-regs-cleanup-v1-7-67bd0ea1e8be@tromey.com> References: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> In-Reply-To: <20231217-tui-regs-cleanup-v1-0-67bd0ea1e8be@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 71.211.161.25 X-Source-L: No X-Exim-ID: 1rEx9h-004MyY-0d X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-161-25.hlrn.qwest.net ([192.168.0.21]) [71.211.161.25]:40716 X-Source-Auth: tom+tromey.com X-Email-Count: 8 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfPHVKYzNSBWZyPUiapVMpPdBDmFNYWUqw0H7Kckwn7llez9KhXFNS5uj+rnqerlpURAsxO4/Yjvfuui1OJL5vBllWA6MCsWjXMV4ffQVOF1q3xOBtxyn qqVpgnC2Os2t+3tt2sSVBO6KLpJoIzT1nNdjsOvp7XbjAbUxILcYgs0KgN4nd+IRwHvm+BmV4FdrXVm+Y3BKvVNVr+dECxOrTHw= X-Spam-Status: No, score=-3022.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org This changes update_register_data to always update the register data. The idea here is that this is really only called when either the desired register group changes, or when gdb transitions from not having a frame to having a frame. show_registers is also simplified slightly to account for this. --- gdb/tui/tui-regs.c | 57 ++++++++++++++++++++---------------------------------- 1 file changed, 21 insertions(+), 36 deletions(-) diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index 0ad23e93778..7b6b669fe51 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -170,15 +170,10 @@ tui_data_window::show_registers (const reggroup *group) group = general_reggroup; if (target_has_registers () && target_has_stack () && target_has_memory ()) - { - update_register_data (group, get_selected_frame (NULL)); - - /* Clear all notation of changed values. */ - for (auto &&data_item_win : m_regs_content) - data_item_win.highlight = false; - } + update_register_data (group, get_selected_frame (nullptr)); else { + set_title (_("Registers")); m_current_group = nullptr; m_regs_content.clear (); } @@ -195,40 +190,30 @@ void tui_data_window::update_register_data (const reggroup *group, frame_info_ptr frame) { - if (group != m_current_group) - { - m_current_group = group; + m_current_group = group; - /* Make a new title showing which group we display. */ - this->set_title (string_printf ("Register group: %s", group->name ())); + /* Make a new title showing which group we display. */ + this->set_title (string_printf ("Register group: %s", group->name ())); - /* Create the registers. */ - m_regs_content.clear (); + /* Create the registers. */ + m_regs_content.clear (); - struct gdbarch *gdbarch = get_frame_arch (frame); - for (int regnum = 0; - regnum < gdbarch_num_cooked_regs (gdbarch); - regnum++) - { - /* Must be in the group. */ - if (!gdbarch_register_reggroup_p (gdbarch, regnum, group)) - continue; + struct gdbarch *gdbarch = get_frame_arch (frame); + for (int regnum = 0; + regnum < gdbarch_num_cooked_regs (gdbarch); + regnum++) + { + /* Must be in the group. */ + if (!gdbarch_register_reggroup_p (gdbarch, regnum, group)) + continue; - /* If the register name is empty, it is undefined for this - processor, so don't display anything. */ - const char *name = gdbarch_register_name (gdbarch, regnum); - if (*name == '\0') - continue; + /* If the register name is empty, it is undefined for this + processor, so don't display anything. */ + const char *name = gdbarch_register_name (gdbarch, regnum); + if (*name == '\0') + continue; - m_regs_content.emplace_back (regnum, frame); - } - } - else - { - /* The group did not change, so we can simply update each - item. */ - for (tui_register_info ® : m_regs_content) - reg.update (frame); + m_regs_content.emplace_back (regnum, frame); } }