From: Mark Kettenis Date: Wed, 29 Oct 2003 18:29:07 +0000 (+0000) Subject: * objfiles.h (clear_objfile_data): New prototype. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7b097ae3929cc0a113d185397fff442217b2365b;p=binutils-gdb.git * objfiles.h (clear_objfile_data): New prototype. * objfiles.c (clear_objfile_data): New function. * symfile.c (reread_symbols): Clear per-objfile data. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e52728fb6c3..0588d658c5a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2003-10-29 Mark Kettenis + + * objfiles.h (clear_objfile_data): New prototype. + * objfiles.c (clear_objfile_data): New function. + * symfile.c (reread_symbols): Clear per-objfile data. + 2003-10-28 Jeff Johnston * symfile.c (symbol_file_add_with_addrs_or_offsets): Switch to use diff --git a/gdb/objfiles.c b/gdb/objfiles.c index 1321b828fff..9a181f4f33b 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -1165,6 +1165,13 @@ objfile_free_data (struct objfile *objfile) objfile->data = NULL; } +void +clear_objfile_data (struct objfile *objfile) +{ + gdb_assert (objfile->data != NULL); + memset (objfile->data, 0, objfile->num_data * sizeof (void *)); +} + void set_objfile_data (struct objfile *objfile, const struct objfile_data *data, void *value) diff --git a/gdb/objfiles.h b/gdb/objfiles.h index fe54f6d10ed..6887dcab657 100644 --- a/gdb/objfiles.h +++ b/gdb/objfiles.h @@ -599,6 +599,7 @@ extern int is_in_import_list (char *, struct objfile *); modules. */ extern const struct objfile_data *register_objfile_data (void); +extern void clear_objfile_data (struct objfile *objfile); extern void set_objfile_data (struct objfile *objfile, const struct objfile_data *data, void *value); extern void *objfile_data (struct objfile *objfile, diff --git a/gdb/symfile.c b/gdb/symfile.c index caea1602b04..68352841dd0 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -1969,6 +1969,7 @@ reread_symbols (void) memset (&objfile->msymbol_demangled_hash, 0, sizeof (objfile->msymbol_demangled_hash)); objfile->fundamental_types = NULL; + clear_objfile_data (objfile); if (objfile->sf != NULL) { (*objfile->sf->sym_finish) (objfile);