From patchwork Sat Jan 20 18:23:18 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 84497 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 7C2723858415 for ; Sat, 20 Jan 2024 18:25:31 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from omta34.uswest2.a.cloudfilter.net (omta34.uswest2.a.cloudfilter.net [35.89.44.33]) by sourceware.org (Postfix) with ESMTPS id 6B8773858415 for ; Sat, 20 Jan 2024 18:23:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6B8773858415 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 6B8773858415 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=35.89.44.33 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775005; cv=none; b=I7ClbuXgeuHXHUDxCD6zL6FrKekUUpLtUVjIXfgzBn6psavjNAnrQJi9pK1tbBG9hqT2OJ3rI+6cF/fGpa46ryatxand71hhRfVsXvfDgaKIWT8dVWva+mf4wUTtlEZrlbMOmQKRtB6PbWN0ds4/ChtEaPkM1PYA7RuWnKVNwH0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705775005; c=relaxed/simple; bh=0XS4Mh7m8k5zUQmgtBduCRwAPotFLMMOKCQOFssdnhI=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=jD8nzS7pcC9n461ZbdXNIP2AuYfY05d4gq8qorlkTbuSJzHD2TH6J+xdZHBRelAV3fy/RFrj6bU9hVd9yjO93UDHBYN4+gF+ICh8tLbziEU+6GKtMeihQpOADHyVXAMMobAiRBSoN9p/tVfe4LlDIhBI71BX5biYnbxjLXS+39U= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-6006a.ext.cloudfilter.net ([10.0.30.182]) by cmsmtp with ESMTPS id R8iLrXSbvMVQiRG01rUyhr; Sat, 20 Jan 2024 18:23:21 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id RG00rswtqYjq0RG00rBnkR; Sat, 20 Jan 2024 18:23:21 +0000 X-Authority-Analysis: v=2.4 cv=afxyIDkt c=1 sm=1 tr=0 ts=65ac0f99 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=IkcTkHD0fZMA:10 a=dEuoMetlWLkA:10 a=Qbun_eYptAEA:10 a=20KFwNOVAAAA:8 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=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To: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=kEs6CYYvePtVagEhX87kNmuWhb2sI1lycU+f1AAPGkA=; b=wV1xtSSh/3l8ADYsOcNXrHwvSC nJzQuIWbzD+faw091moCWK++vyNZgsouoJx3CJ+3V9P2SV7ySZ1ULLyVyJqzsJE/SadvLPAxHJRv1 EmSlBv+X63mtJrj/mD6L/r5fR; Received: from 97-122-68-157.hlrn.qwest.net ([97.122.68.157]:47898 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 1rRG00-0049D4-13; Sat, 20 Jan 2024 11:23:20 -0700 From: Tom Tromey Date: Sat, 20 Jan 2024 11:23:18 -0700 Subject: [PATCH v2 07/14] Simplify update_register_data MIME-Version: 1.0 Message-Id: <20240120-tui-regs-cleanup-v2-7-a3cccc6a3573@tromey.com> References: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> In-Reply-To: <20240120-tui-regs-cleanup-v2-0-a3cccc6a3573@tromey.com> To: gdb-patches@sourceware.org Cc: Tom de Vries , Andrew Burgess 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: 97.122.68.157 X-Source-L: No X-Exim-ID: 1rRG00-0049D4-13 X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-68-157.hlrn.qwest.net ([192.168.0.21]) [97.122.68.157]:47898 X-Source-Auth: tom+tromey.com X-Email-Count: 23 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfHHNuv74hO/gHYoqu0f/b/oLv1AgfX2MLJVZNetTdrV+3aqBNe8jfyxSTi9fWWt6TjGPG3UajnztkaO+Yz5pmA0eh/mdhPz+u/3RZGslOAOSbPpilEHK kj1M0e/rd8PXh31d4spq6KN9mOPIDXdGM0XcgBwB+E5SCtTEwzvJs9WrxYeC0fz3fM7CEsMsLpycMm4JwKf6VI5e3Wz/mWZ8E7g= X-Spam-Status: No, score=-3022.8 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. Tested-By: Tom de Vries Reviewed-By: Andrew Burgess --- 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 eeea03f87c1..7af572c9da4 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 (nullptr)); - - /* 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 (); } @@ -194,40 +189,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); } }