This is the mail archive of the
insight@sourceware.org
mailing list for the Insight project.
[PATCH] use an observer instead of deprecated_file_changed_hook
- From: Tom Tromey <tromey at redhat dot com>
- To: Insight List <insight at sourceware dot org>
- Date: Tue, 07 Jan 2014 12:09:44 -0700
- Subject: [PATCH] use an observer instead of deprecated_file_changed_hook
- Authentication-results: sourceware.org; auth=none
This patch changes Insight to use the new_objfile observer rather than
deprecated_file_changed_hook. This will let us remove
deprecated_file_changed_hook from gdb.
I think it works ok. I tested it by running the "file" command in the
console and seeing whether insight reacted. I'm not totally sure
whether this is a sufficient check, though.
Ok?
Tom
gdb/gdbtk/ChangeLog:
2014-01-07 Tom Tromey <tromey@redhat.com>
* generic/gdbtk-hooks.c (gdbtk_new_objfile): New function.
(gdbtk_file_changed): Remove.
(gdbtk_add_hooks): Register "new_objfile" observer. Don't set
deprecated_file_changed_hook.
Index: gdb/gdbtk/generic/gdbtk-hooks.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-hooks.c,v
retrieving revision 1.60
diff -u -r1.60 gdbtk-hooks.c
--- gdb/gdbtk/generic/gdbtk-hooks.c 2 Jul 2013 17:07:29 -0000 1.60
+++ gdb/gdbtk/generic/gdbtk-hooks.c 7 Jan 2014 19:07:52 -0000
@@ -1,7 +1,7 @@
/* Startup code for Insight.
Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 200, 2002, 2003, 2004,
- 2008, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+ 2008, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
Written by Stu Grossman <grossman@cygnus.com> of Cygnus Support.
@@ -77,7 +77,7 @@
static void gdbtk_trace_start_stop (int, int);
static void gdbtk_attach (void);
static void gdbtk_detach (void);
-static void gdbtk_file_changed (char *);
+static void gdbtk_new_objfile (struct objfile *);
static void gdbtk_exec_file_display (char *);
static void gdbtk_call_command (struct cmd_list_element *, char *, int);
static ptid_t gdbtk_wait (ptid_t, struct target_waitstatus *, int);
@@ -144,7 +144,8 @@
deprecated_ui_loop_hook = x_event;
deprecated_pre_add_symbol_hook = gdbtk_pre_add_symbol;
deprecated_post_add_symbol_hook = gdbtk_post_add_symbol;
- deprecated_file_changed_hook = gdbtk_file_changed;
+ observer_attach_new_objfile (gdbtk_new_objfile);
+
specify_exec_file_hook (gdbtk_exec_file_display);
deprecated_trace_find_hook = gdbtk_trace_find;
@@ -764,11 +765,12 @@
gdb_context = num;
}
-/* Called from file_command */
+/* Called from file_command, via the symfile observer. */
static void
-gdbtk_file_changed (char *filename)
+gdbtk_new_objfile (struct objfile *objfile)
{
- gdbtk_two_elem_cmd ("gdbtk_tcl_file_changed", filename);
+ if (objfile == symfile_objfile && objfile != NULL)
+ gdbtk_two_elem_cmd ("gdbtk_tcl_file_changed", objfile->original_name);
}
/* Called from exec_file_command */