summaryrefslogtreecommitdiff
path: root/bfd/libbfd-in.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2012-08-09 06:25:53 +0000
committerAlan Modra <amodra@gmail.com>2012-08-09 06:25:53 +0000
commiteeb1f9aea6773f39b281b43600d38ec0aa3fed6d (patch)
treed361dc01b6b1cfa93f129aab36f4c8a75d5a58bd /bfd/libbfd-in.h
parent2588feef114cd2dc404453c36827e32b40ccc143 (diff)
downloadbinutils-gdb-eeb1f9aea6773f39b281b43600d38ec0aa3fed6d.tar.gz
* archive.c (SECTION Archives): Update documentation.
(_bfd_delete_archive_data): Remove. (_bfd_add_bfd_to_archive_cache): Set 'parent_cache' and 'key'. (archive_close_worker, _bfd_archive_close_and_cleanup): New functions. * libbfd-in.h (struct areltdata <parent_cache, key>): New fields. (_bfd_delete_archive_data): Don't declare. (_bfd_archive_close_and_cleanup): Declare. (_bfd_generic_close_and_cleanup): Redefine. * libbfd.h: Rebuild. * opncls.c (_bfd_delete_bfd): Don't call _bfd_delete_archive_data. (bfd_close): Don't close nested thin archives here.
Diffstat (limited to 'bfd/libbfd-in.h')
-rw-r--r--bfd/libbfd-in.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h
index 8cdb1c65c36..80cb05104e0 100644
--- a/bfd/libbfd-in.h
+++ b/bfd/libbfd-in.h
@@ -96,6 +96,8 @@ struct areltdata
bfd_size_type extra_size; /* BSD4.4: extra bytes after the header. */
char *filename; /* Null-terminated. */
file_ptr origin; /* For element of a thin archive. */
+ void *parent_cache; /* Where and how to find this member. */
+ file_ptr key;
};
#define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
@@ -130,8 +132,6 @@ extern void bfd_release
bfd * _bfd_create_empty_archive_element_shell
(bfd *obfd);
-void _bfd_delete_archive_data
- (bfd *abfd);
bfd * _bfd_look_for_bfd_in_cache
(bfd *, file_ptr);
bfd_boolean _bfd_add_bfd_to_archive_cache
@@ -232,7 +232,9 @@ int bfd_generic_stat_arch_elt
/* Generic routines to use for BFD_JUMP_TABLE_GENERIC. Use
BFD_JUMP_TABLE_GENERIC (_bfd_generic). */
-#define _bfd_generic_close_and_cleanup bfd_true
+#define _bfd_generic_close_and_cleanup _bfd_archive_close_and_cleanup
+extern bfd_boolean _bfd_archive_close_and_cleanup
+ (bfd *);
#define _bfd_generic_bfd_free_cached_info bfd_true
extern bfd_boolean _bfd_generic_new_section_hook
(bfd *, asection *);