diff options
author | Alan Modra <amodra@gmail.com> | 2021-02-15 12:00:48 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2021-02-15 13:34:08 +1030 |
commit | 8b78cbec3191c7f153d116fb2184ea6400b3a7b1 (patch) | |
tree | 54c46bc11c9c1d4581d3795368385efb491ae5f3 /bfd/coff-alpha.c | |
parent | a5e6af6d17a38d08bc0cac6c1a79f46721a44972 (diff) | |
download | gdb-8b78cbec3191c7f153d116fb2184ea6400b3a7b1.zip gdb-8b78cbec3191c7f153d116fb2184ea6400b3a7b1.tar.gz gdb-8b78cbec3191c7f153d116fb2184ea6400b3a7b1.tar.bz2 |
alpha_ecoff_get_relocated_section_contents
Use bfd_get_full_section_contents and tidy the start of this function
to match current generic get_relocated_section_contents.
* coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Use
bfd_get_full_section_contents.
Diffstat (limited to 'bfd/coff-alpha.c')
-rw-r--r-- | bfd/coff-alpha.c | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c index db26587..8031ab9 100644 --- a/bfd/coff-alpha.c +++ b/bfd/coff-alpha.c @@ -732,25 +732,31 @@ alpha_ecoff_get_relocated_section_contents (bfd *abfd, { bfd *input_bfd = link_order->u.indirect.section->owner; asection *input_section = link_order->u.indirect.section; - long reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section); - arelent **reloc_vector = NULL; + long reloc_size; + arelent **reloc_vector; long reloc_count; bfd *output_bfd = relocatable ? abfd : (bfd *) NULL; bfd_vma gp; - bfd_size_type sz; bfd_boolean gp_undefined; bfd_vma stack[RELOC_STACKSIZE]; int tos = 0; + reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section); if (reloc_size < 0) - goto error_return; - reloc_vector = (arelent **) bfd_malloc ((bfd_size_type) reloc_size); - if (reloc_vector == NULL && reloc_size != 0) - goto error_return; + return NULL; - sz = input_section->rawsize ? input_section->rawsize : input_section->size; - if (! bfd_get_section_contents (input_bfd, input_section, data, 0, sz)) - goto error_return; + if (!bfd_get_full_section_contents (input_bfd, input_section, &data)) + return NULL; + + if (data == NULL) + return NULL; + + if (reloc_size == 0) + return data; + + reloc_vector = (arelent **) bfd_malloc (reloc_size); + if (reloc_vector == NULL) + return NULL; reloc_count = bfd_canonicalize_reloc (input_bfd, input_section, reloc_vector, symbols); |