summaryrefslogtreecommitdiff
path: root/bfd/libbfd-in.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2012-08-09 06:25:51 +0000
committerAlan Modra <amodra@bigpond.net.au>2012-08-09 06:25:51 +0000
commit65ee7152078ced10bdaf73f843bc2690b37e6181 (patch)
tree9e479575db8f703bee5c8fdc7a96278a43638fbd /bfd/libbfd-in.h
parent0c795959aeca42776a247b32853454e003f4f95a (diff)
downloadbinutils-redhat-65ee7152078ced10bdaf73f843bc2690b37e6181.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 8cdb1c65c3..80cb05104e 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 *);