[PATCH] use an observer instead of deprecated_file_changed_hook
Tom Tromey <[email protected]> Tue, 07 Jan 2014 12:09:44 -0700
| Newsgroups | gmane.comp.debugging.insight |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> * 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 <[email protected]> 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 */