From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 121709 invoked by alias); 8 Jul 2015 14:11:15 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 121693 invoked by uid 89); 8 Jul 2015 14:11:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW autolearn=no version=3.3.2 X-HELO: mail-qk0-f179.google.com Received: from mail-qk0-f179.google.com (HELO mail-qk0-f179.google.com) (209.85.220.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 08 Jul 2015 14:11:13 +0000 Received: by qkei195 with SMTP id i195so163602229qke.3 for ; Wed, 08 Jul 2015 07:11:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=wq8y49rN3PIscJLQjODThSvryR7TRID3MgullAM/ahQ=; b=AbjfHO8ahjDlCu8Z2kmguhhDdLBv9j8S/uj2gNhQPsSZu1h/RY7F9Adtlt3lzHYbbM M4OrP34S2hHt1rX0SDJL57sFiDDArrRDIVcWB54hfdFJt0I5ySi89dWosn/awdKG8O5S IIpHIwhRaL5+x8/aHhKI2SQbXTsbB8pDC1yTqb2dFRTr9Gz+6TsJqrM3BJgYsZSmh8vz RuZvcIfs9W4r/+xLUrmwb0+EprVJaSdFFduhNGad6gaQfC+XwEOFnkba+Tnwkq7d4lCB 5VHhDnrGwXlWiz5CVIwN90cmaWML604qRDnE+tJx3wmToSTgE/+OdYNo4hEMoiWdI/ZM ZRgw== X-Gm-Message-State: ALoCoQka2xTYp+avuiFOApTrCZasGg34Rpz9ziBm2U1v80/o+aOEn8sbOUy15ruKK/kYSjmAP2A0 X-Received: by 10.140.150.78 with SMTP id 75mr17186589qhw.10.1436364671148; Wed, 08 Jul 2015 07:11:11 -0700 (PDT) Received: from localhost.localdomain (ool-4353acd8.dyn.optonline.net. [67.83.172.216]) by smtp.gmail.com with ESMTPSA id s5sm1469928qgs.1.2015.07.08.07.11.10 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 08 Jul 2015 07:11:10 -0700 (PDT) From: Patrick Palka To: gdb-patches@sourceware.org Cc: Patrick Palka Subject: [PATCH] tui: replace deprecated_register_changed_hook with observer Date: Wed, 08 Jul 2015 14:11:00 -0000 Message-Id: <1436364665-16937-1-git-send-email-patrick@parcs.ath.cx> In-Reply-To: <559D2B1F.1080503@redhat.com> References: <559D2B1F.1080503@redhat.com> X-SW-Source: 2015-07/txt/msg00216.txt.bz2 This is a straightforward replacement of the TUI's use of the aforementioned hook with the register_changed observer. Since this was the only user of the hook, this patch also removes the hook. gdb/ChangeLog: * defs.h (deprecated_register_changed_hook): Remove prototype. * interps.c (clear_iterpreter_hooks): Remove reference to deprecated_register_changed_hook. * top.c (deprecated_register_changed_hook): Remove prototype. * valops.c (value_assign): Remove reference to deprecated_register_changed_hook. * tui/tui-hooks.c (tui_register_changed): Add parameter "frame". Add comment documenting the function. (tui_register_changed_observer): Define. (tui_install_hooks): Remove reference to deprecated_register_changed_hook. Set tui_register_changed_observer. (tui_remove_hooks): Remove reference to deprecated_register_changed_hook. Unset tui_register_changed_observer. --- gdb/defs.h | 1 - gdb/interps.c | 1 - gdb/top.c | 5 ----- gdb/tui/tui-hooks.c | 18 +++++++++++++----- gdb/valops.c | 2 -- 5 files changed, 13 insertions(+), 14 deletions(-) diff --git a/gdb/defs.h b/gdb/defs.h index 32b08bb..a555da1 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -649,7 +649,6 @@ extern void (*deprecated_readline_begin_hook) (char *, ...) ATTRIBUTE_FPTR_PRINTF_1; extern char *(*deprecated_readline_hook) (const char *); extern void (*deprecated_readline_end_hook) (void); -extern void (*deprecated_register_changed_hook) (int regno); extern void (*deprecated_context_hook) (int); extern ptid_t (*deprecated_target_wait_hook) (ptid_t ptid, struct target_waitstatus *status, diff --git a/gdb/interps.c b/gdb/interps.c index 4c1e6cc..d825e14 100644 --- a/gdb/interps.c +++ b/gdb/interps.c @@ -370,7 +370,6 @@ clear_interpreter_hooks (void) deprecated_readline_begin_hook = 0; deprecated_readline_hook = 0; deprecated_readline_end_hook = 0; - deprecated_register_changed_hook = 0; deprecated_context_hook = 0; deprecated_target_wait_hook = 0; deprecated_call_command_hook = 0; diff --git a/gdb/top.c b/gdb/top.c index 01fddd2..1e30b1c 100644 --- a/gdb/top.c +++ b/gdb/top.c @@ -221,11 +221,6 @@ void (*deprecated_detach_hook) (void); void (*deprecated_interactive_hook) (void); -/* Tell the GUI someone changed the register REGNO. -1 means - that the caller does not know which register changed or - that several registers have changed (see value_assign). */ -void (*deprecated_register_changed_hook) (int regno); - /* Called when going to wait for the target. Usually allows the GUI to run while waiting for target events. */ diff --git a/gdb/tui/tui-hooks.c b/gdb/tui/tui-hooks.c index 0eb2f07..c885108 100644 --- a/gdb/tui/tui-hooks.c +++ b/gdb/tui/tui-hooks.c @@ -66,11 +66,18 @@ tui_new_objfile_hook (struct objfile* objfile) /* Prevent recursion of deprecated_register_changed_hook(). */ static int tui_refreshing_registers = 0; +/* Observer for the register_changed notification. */ + static void -tui_register_changed_hook (int regno) +tui_register_changed (struct frame_info *frame, int regno) { struct frame_info *fi; + /* The frame of the register that was changed may differ from the selected + frame, but we only want to show the register values of the selected frame. + And even if the frames differ a register change made in one can still show + up in the other. So we always use the selected frame here, and ignore + FRAME. */ fi = get_selected_frame (NULL); if (tui_refreshing_registers == 0) { @@ -226,6 +233,7 @@ static struct observer *tui_inferior_exit_observer; static struct observer *tui_about_to_proceed_observer; static struct observer *tui_before_prompt_observer; static struct observer *tui_normal_stop_observer; +static struct observer *tui_register_changed_observer; /* Install the TUI specific hooks. */ void @@ -253,8 +261,8 @@ tui_install_hooks (void) = observer_attach_before_prompt (tui_before_prompt); tui_normal_stop_observer = observer_attach_normal_stop (tui_normal_stop); - - deprecated_register_changed_hook = tui_register_changed_hook; + tui_register_changed_observer + = observer_attach_register_changed (tui_register_changed); } /* Remove the TUI specific hooks. */ @@ -263,8 +271,6 @@ tui_remove_hooks (void) { deprecated_print_frame_info_listing_hook = 0; deprecated_query_hook = 0; - deprecated_register_changed_hook = 0; - /* Remove our observers. */ observer_detach_breakpoint_created (tui_bp_created_observer); tui_bp_created_observer = NULL; @@ -280,6 +286,8 @@ tui_remove_hooks (void) tui_before_prompt_observer = NULL; observer_detach_normal_stop (tui_normal_stop_observer); tui_normal_stop_observer = NULL; + observer_detach_register_changed (tui_register_changed_observer); + tui_register_changed_observer = NULL; } void _initialize_tui_hooks (void); diff --git a/gdb/valops.c b/gdb/valops.c index 50082c9..403e088 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -1170,8 +1170,6 @@ value_assign (struct value *toval, struct value *fromval) } observer_notify_register_changed (frame, value_reg); - if (deprecated_register_changed_hook) - deprecated_register_changed_hook (-1); break; } -- 2.5.0.rc0.5.g91e10c5.dirty