aboutsummaryrefslogtreecommitdiff
path: root/gdb/objfiles.h
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2009-09-11 18:51:31 +0000
committerDoug Evans <dje@google.com>2009-09-11 18:51:31 +0000
commitc1bd65d04220ff6e4a7356d4c2b8a16f9f3e3218 (patch)
tree13e03f6769634d4306d4fb64831747c90fe60428 /gdb/objfiles.h
parentcec03d703f8c80f4a3f98fe0e3e35dde7e9b1835 (diff)
downloadgdb-c1bd65d04220ff6e4a7356d4c2b8a16f9f3e3218.zip
gdb-c1bd65d04220ff6e4a7356d4c2b8a16f9f3e3218.tar.gz
gdb-c1bd65d04220ff6e4a7356d4c2b8a16f9f3e3218.tar.bz2
* objfiles.c (struct objfile_data): Delete member cleanup and replace
with save, free. (register_objfile_data_with_cleanup): Delete arg cleanup and replace with save, free. All callers updated. (clear_objfile_data): Replace cleanup loop with separate save and free loops. * objfiles.h (register_objfile_data_with_cleanup): Update. * arm-tdep.c (arm_objfile_data_free): Renamed from arm_objfile_data_cleanup, all callers updated. * dwarf2read.c (dwarf2_per_objfile_free): Renamed from dwarf2_per_objfile_cleanup, all callers updated. * python/py-objfile.c (py_free_objfile): Renamed from clean_up_objfile, all callers updated. * python/py-type.c (save_objfile_types): Renamed from clean_up_objfile_types, all callers updated.
Diffstat (limited to 'gdb/objfiles.h')
-rw-r--r--gdb/objfiles.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 6abcb0f..62fa498 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -500,9 +500,18 @@ extern int in_plt_section (CORE_ADDR, char *);
/* Keep a registry of per-objfile data-pointers required by other GDB
modules. */
+/* Allocate an entry in the per-objfile registry. */
extern const struct objfile_data *register_objfile_data (void);
+
+/* Allocate an entry in the per-objfile registry.
+ SAVE and FREE are called when clearing objfile data.
+ First all registered SAVE functions are called.
+ Then all registered FREE functions are called.
+ Either or both of SAVE, FREE may be NULL. */
extern const struct objfile_data *register_objfile_data_with_cleanup
- (void (*cleanup) (struct objfile *, void *));
+ (void (*save) (struct objfile *, void *),
+ void (*free) (struct objfile *, void *));
+
extern void clear_objfile_data (struct objfile *objfile);
extern void set_objfile_data (struct objfile *objfile,
const struct objfile_data *data, void *value);