* objfiles.h (clear_objfile_data): New prototype.
authorMark Kettenis <kettenis@gnu.org>
Wed, 29 Oct 2003 18:29:07 +0000 (18:29 +0000)
committerMark Kettenis <kettenis@gnu.org>
Wed, 29 Oct 2003 18:29:07 +0000 (18:29 +0000)
* objfiles.c (clear_objfile_data): New function.
* symfile.c (reread_symbols): Clear per-objfile data.

gdb/ChangeLog
gdb/objfiles.c
gdb/objfiles.h
gdb/symfile.c

index e52728fb6c3a5d2cfa55ed23bcc9f965d48cd0e4..0588d658c5a7eedf5d60f4a623edefaa8a3e7286 100644 (file)
@@ -1,3 +1,9 @@
+2003-10-29  Mark Kettenis  <kettenis@gnu.org>
+
+       * 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  <jjohnstn@redhat.com>
  
        * symfile.c (symbol_file_add_with_addrs_or_offsets): Switch to use
index 1321b828fff674b86e72019560da379f879a4e53..9a181f4f33b6954a3c6a36c13e806bcf80dd89c6 100644 (file)
@@ -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)
index fe54f6d10edebdc8b0ffee3cecee16eda37ff2d0..6887dcab657f29fd5f2fab00df41c52543de1a76 100644 (file)
@@ -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,
index caea1602b04d09eb807ea13935ee073f070435e0..68352841dd002e3a5a52a888d7634a4997721c83 100644 (file)
@@ -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);