tui: replace deprecated_register_changed_hook with observer

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.
This commit is contained in:
Patrick Palka 2015-07-02 12:27:50 -04:00
parent 328e7bfdde
commit a9bd710f87
6 changed files with 31 additions and 14 deletions

View file

@ -1,3 +1,21 @@
2015-07-08 Patrick Palka <patrick@parcs.ath.cx>
* 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.
2015-07-08 Jan Kratochvil <jan.kratochvil@redhat.com>
PR compile/18484

View file

@ -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,

View file

@ -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;

View file

@ -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. */

View file

@ -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);

View file

@ -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;
}