This is the mail archive of the insight@sourceware.org mailing list for the Insight project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] use an observer instead of deprecated_file_changed_hook


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]