diff options
-rw-r--r-- | gdb/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/coffread.c | 2 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 12 | ||||
-rw-r--r-- | gdb/elfread.c | 1 | ||||
-rw-r--r-- | gdb/symfile.h | 2 | ||||
-rw-r--r-- | gdb/xcoffread.c | 2 |
6 files changed, 16 insertions, 13 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8062619..81fae49 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2018-06-28 Tom Tromey <tom@tromey.com> + + * coffread.c (coff_symfile_finish): Update. + * xcoffread.c (xcoff_symfile_finish): Update. + * elfread.c (elf_symfile_finish): Update. + * symfile.h (dwarf2_free_objfile): Don't declare. + * dwarf2read.c (_initialize_dwarf2_read): Use + register_objfile_data_with_cleanup. + (dwarf2_free_objfile): Now static. Change signature. + 2018-06-28 Petr Tesarik <ptesarik@suse.cz> * symfile.c (add_symbol_file_command, _initialize_symfile): Add diff --git a/gdb/coffread.c b/gdb/coffread.c index bc266fb..30583e1 100644 --- a/gdb/coffread.c +++ b/gdb/coffread.c @@ -766,8 +766,6 @@ coff_symfile_finish (struct objfile *objfile) { /* Let stabs reader clean up. */ stabsread_clear_cache (); - - dwarf2_free_objfile (objfile); } diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 083ec91..9f6d34f 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -24997,13 +24997,13 @@ free_one_cached_comp_unit (struct dwarf2_per_cu_data *target_per_cu) } } -/* Release all extra memory associated with OBJFILE. */ +/* Cleanup function for the dwarf2_per_objfile data. */ -void -dwarf2_free_objfile (struct objfile *objfile) +static void +dwarf2_free_objfile (struct objfile *objfile, void *datum) { struct dwarf2_per_objfile *dwarf2_per_objfile - = get_dwarf2_per_objfile (objfile); + = static_cast<struct dwarf2_per_objfile *> (datum); delete dwarf2_per_objfile; } @@ -25325,8 +25325,8 @@ show_check_physname (struct ui_file *file, int from_tty, void _initialize_dwarf2_read (void) { - - dwarf2_objfile_data_key = register_objfile_data (); + dwarf2_objfile_data_key + = register_objfile_data_with_cleanup (nullptr, dwarf2_free_objfile); add_prefix_cmd ("dwarf", class_maintenance, set_dwarf_cmd, _("\ Set DWARF specific variables.\n\ diff --git a/gdb/elfread.c b/gdb/elfread.c index e11c051..feca5ea 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -1336,7 +1336,6 @@ elf_new_init (struct objfile *ignore) static void elf_symfile_finish (struct objfile *objfile) { - dwarf2_free_objfile (objfile); } /* ELF specific initialization routine for reading symbols. */ diff --git a/gdb/symfile.h b/gdb/symfile.h index 1b47669..79c7687 100644 --- a/gdb/symfile.h +++ b/gdb/symfile.h @@ -616,8 +616,6 @@ extern bool dwarf2_initialize_objfile (struct objfile *objfile, extern void dwarf2_build_psymtabs (struct objfile *); extern void dwarf2_build_frame_info (struct objfile *); -void dwarf2_free_objfile (struct objfile *); - /* From mdebugread.c */ extern void mdebug_build_psymtabs (minimal_symbol_reader &, diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c index 7b9694b..79b1df7 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -1959,8 +1959,6 @@ xcoff_symfile_finish (struct objfile *objfile) inclTable = NULL; } inclIndx = inclLength = inclDepth = 0; - - dwarf2_free_objfile (objfile); } |