X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Fcoffgen.c;h=34d8d50506a51a7b6bd66b78ccc9bf144ecb9bfb;hb=37d5ab199b072e3cf1e8bf2a9262767c4737d256;hp=7f26e18c4509167b54eac29046e47960211fdba1;hpb=f14080d440fab16dcb498c1a46864a5a1be37aaa;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/coffgen.c b/bfd/coffgen.c index 7f26e18c45..34d8d50506 100644 --- a/bfd/coffgen.c +++ b/bfd/coffgen.c @@ -305,6 +305,9 @@ coff_real_object_p (bfd *abfd, return abfd->xvec; fail: + obj_coff_keep_syms (abfd) = FALSE; + obj_coff_keep_strings (abfd) = FALSE; + _bfd_coff_free_symbols (abfd); bfd_release (abfd, tdata); fail2: abfd->tdata.any = tdata_save; @@ -3161,3 +3164,18 @@ bfd_coff_group_name (bfd *abfd, const asection *sec) return ci->name; return NULL; } + +bfd_boolean +_bfd_coff_close_and_cleanup (bfd *abfd) +{ + if (abfd->format == bfd_object + && bfd_family_coff (abfd) + && coff_data (abfd) != NULL) + { + obj_coff_keep_syms (abfd) = FALSE; + obj_coff_keep_strings (abfd) = FALSE; + if (!_bfd_coff_free_symbols (abfd)) + return FALSE; + } + return _bfd_generic_close_and_cleanup (abfd); +}