diff options
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/elfnn-aarch64.c | 13 | ||||
-rw-r--r-- | bfd/opncls.c | 5 | ||||
-rw-r--r-- | bfd/som.c | 6 |
3 files changed, 9 insertions, 15 deletions
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c index 32799b6..3ad5cb9 100644 --- a/bfd/elfnn-aarch64.c +++ b/bfd/elfnn-aarch64.c @@ -8736,16 +8736,6 @@ unrecord_section_via_map_over_sections (bfd *abfd ATTRIBUTE_UNUSED, } static bool -elfNN_aarch64_close_and_cleanup (bfd *abfd) -{ - if (abfd->sections) - bfd_map_over_sections (abfd, - unrecord_section_via_map_over_sections, NULL); - - return _bfd_elf_close_and_cleanup (abfd); -} - -static bool elfNN_aarch64_bfd_free_cached_info (bfd *abfd) { if (abfd->sections) @@ -10263,9 +10253,6 @@ const struct elf_size_info elfNN_aarch64_size_info = #define ELF_MAXPAGESIZE 0x10000 #define ELF_COMMONPAGESIZE 0x1000 -#define bfd_elfNN_close_and_cleanup \ - elfNN_aarch64_close_and_cleanup - #define bfd_elfNN_bfd_free_cached_info \ elfNN_aarch64_bfd_free_cached_info diff --git a/bfd/opncls.c b/bfd/opncls.c index f006495..b0c23b4 100644 --- a/bfd/opncls.c +++ b/bfd/opncls.c @@ -156,6 +156,11 @@ _bfd_new_bfd_contained_in (bfd *obfd) static void _bfd_delete_bfd (bfd *abfd) { + /* Give the target _bfd_free_cached_info a chance to free memory. */ + if (abfd->memory) + bfd_free_cached_info (abfd); + + /* The target _bfd_free_cached_info may not have done anything.. */ if (abfd->memory) { bfd_hash_table_free (&abfd->section_htab); @@ -6813,7 +6813,9 @@ som_bfd_free_cached_info (bfd *abfd) #undef FREE } - return _bfd_generic_close_and_cleanup (abfd); + /* Do not call _bfd_free_cached_info here. som_write_armap needs + to access the bfd obj_alloc memory. */ + return true; } /* End of miscellaneous support functions. */ @@ -6828,7 +6830,7 @@ som_bfd_link_split_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec) #define som_find_line _bfd_nosymbols_find_line #define som_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string -#define som_close_and_cleanup som_bfd_free_cached_info +#define som_close_and_cleanup _bfd_generic_close_and_cleanup #define som_read_ar_hdr _bfd_generic_read_ar_hdr #define som_write_ar_hdr _bfd_generic_write_ar_hdr #define som_openr_next_archived_file bfd_generic_openr_next_archived_file |