summaryrefslogtreecommitdiff
path: root/bfd/compress.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2012-10-21 09:06:06 +0000
committerAlan Modra <amodra@bigpond.net.au>2012-10-21 09:06:06 +0000
commit16bf045b1bea9ff86866e4bad2f896d33c85c23a (patch)
treef6ccc18027799c349e420d5bfe37d3e98eba96b8 /bfd/compress.c
parent838b6189ca28186c1ed18eb589a44261fed390f7 (diff)
downloadbinutils-redhat-16bf045b1bea9ff86866e4bad2f896d33c85c23a.tar.gz
bfd/
* compress.c (bfd_cache_section_contents): New function. * bfd-in2.h: Regenerate. binutils/ * objdump.c (load_specific_debug_section): Use bfd_cache_section_contents.
Diffstat (limited to 'bfd/compress.c')
-rw-r--r--bfd/compress.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/bfd/compress.c b/bfd/compress.c
index 294bfd3e9d..7f947817a1 100644
--- a/bfd/compress.c
+++ b/bfd/compress.c
@@ -255,6 +255,29 @@ bfd_get_full_section_contents (bfd *abfd, sec_ptr sec, bfd_byte **ptr)
/*
FUNCTION
+ bfd_cache_section_contents
+
+SYNOPSIS
+ void bfd_cache_section_contents
+ (asection *sec, void *contents);
+
+DESCRIPTION
+ Stash @var(contents) so any following reads of @var(sec) do
+ not need to decompress again.
+*/
+
+void
+bfd_cache_section_contents (asection *sec, void *contents)
+{
+ if (sec->compress_status == DECOMPRESS_SECTION_SIZED)
+ sec->compress_status = COMPRESS_SECTION_DONE;
+ sec->contents = contents;
+ sec->flags |= SEC_IN_MEMORY;
+}
+
+
+/*
+FUNCTION
bfd_is_section_compressed
SYNOPSIS