diff options
Diffstat (limited to 'bfd/xcofflink.c')
-rw-r--r-- | bfd/xcofflink.c | 106 |
1 files changed, 32 insertions, 74 deletions
diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c index 503b6ab..4497be2 100644 --- a/bfd/xcofflink.c +++ b/bfd/xcofflink.c @@ -227,8 +227,7 @@ xcoff_get_section_contents (bfd *abfd, asection *sec) if (! bfd_malloc_and_get_section (abfd, sec, &contents)) { - if (contents != NULL) - free (contents); + free (contents); return FALSE; } coff_section_data (abfd, sec)->contents = contents; @@ -2179,7 +2178,6 @@ xcoff_link_add_symbols (bfd *abfd, struct bfd_link_info *info) /* If we are not keeping memory, free the reloc information. */ if (! info->keep_memory && coff_section_data (abfd, o) != NULL - && coff_section_data (abfd, o)->relocs != NULL && ! coff_section_data (abfd, o)->keep_relocs) { free (coff_section_data (abfd, o)->relocs); @@ -2189,11 +2187,8 @@ xcoff_link_add_symbols (bfd *abfd, struct bfd_link_info *info) /* Free up the line numbers. FIXME: We could cache these somewhere for the final link, to avoid reading them again. */ - if (reloc_info[o->target_index].linenos != NULL) - { - free (reloc_info[o->target_index].linenos); - reloc_info[o->target_index].linenos = NULL; - } + free (reloc_info[o->target_index].linenos); + reloc_info[o->target_index].linenos = NULL; } free (reloc_info); @@ -2207,10 +2202,8 @@ xcoff_link_add_symbols (bfd *abfd, struct bfd_link_info *info) { for (o = abfd->sections; o != NULL; o = o->next) { - if (reloc_info[o->target_index].csects != NULL) - free (reloc_info[o->target_index].csects); - if (reloc_info[o->target_index].linenos != NULL) - free (reloc_info[o->target_index].linenos); + free (reloc_info[o->target_index].csects); + free (reloc_info[o->target_index].linenos); } free (reloc_info); } @@ -2985,7 +2978,6 @@ xcoff_mark (struct bfd_link_info *info, asection *sec) if (! info->keep_memory && coff_section_data (sec->owner, sec) != NULL - && coff_section_data (sec->owner, sec)->relocs != NULL && ! coff_section_data (sec->owner, sec)->keep_relocs) { free (coff_section_data (sec->owner, sec)->relocs); @@ -3971,10 +3963,8 @@ bfd_xcoff_size_dynamic_sections (bfd *output_bfd, return TRUE; error_return: - if (ldinfo.strings != NULL) - free (ldinfo.strings); - if (debug_contents != NULL) - free (debug_contents); + free (ldinfo.strings); + free (debug_contents); return FALSE; } @@ -6207,31 +6197,16 @@ _bfd_xcoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info) } /* Free up the buffers used by xcoff_link_input_bfd. */ - if (flinfo.internal_syms != NULL) - { - free (flinfo.internal_syms); - flinfo.internal_syms = NULL; - } - if (flinfo.sym_indices != NULL) - { - free (flinfo.sym_indices); - flinfo.sym_indices = NULL; - } - if (flinfo.linenos != NULL) - { - free (flinfo.linenos); - flinfo.linenos = NULL; - } - if (flinfo.contents != NULL) - { - free (flinfo.contents); - flinfo.contents = NULL; - } - if (flinfo.external_relocs != NULL) - { - free (flinfo.external_relocs); - flinfo.external_relocs = NULL; - } + free (flinfo.internal_syms); + flinfo.internal_syms = NULL; + free (flinfo.sym_indices); + flinfo.sym_indices = NULL; + free (flinfo.linenos); + flinfo.linenos = NULL; + free (flinfo.contents); + flinfo.contents = NULL; + free (flinfo.external_relocs); + flinfo.external_relocs = NULL; /* The value of the last C_FILE symbol is supposed to be -1. Write it out again. */ @@ -6250,11 +6225,8 @@ _bfd_xcoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info) input files. */ bfd_hash_traverse (&info->hash->table, xcoff_write_global_symbol, &flinfo); - if (flinfo.outsyms != NULL) - { - free (flinfo.outsyms); - flinfo.outsyms = NULL; - } + free (flinfo.outsyms); + flinfo.outsyms = NULL; /* Now that we have written out all the global symbols, we know the symbol indices to use for relocs against them, and we can finally @@ -6336,11 +6308,8 @@ _bfd_xcoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info) goto error_return; } - if (external_relocs != NULL) - { - free (external_relocs); - external_relocs = NULL; - } + free (external_relocs); + external_relocs = NULL; /* Free up the section information. */ if (flinfo.section_info != NULL) @@ -6349,10 +6318,8 @@ _bfd_xcoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info) for (i = 0; i < abfd->section_count; i++) { - if (flinfo.section_info[i].relocs != NULL) - free (flinfo.section_info[i].relocs); - if (flinfo.section_info[i].rel_hashes != NULL) - free (flinfo.section_info[i].rel_hashes); + free (flinfo.section_info[i].relocs); + free (flinfo.section_info[i].rel_hashes); } free (flinfo.section_info); flinfo.section_info = NULL; @@ -6437,27 +6404,18 @@ _bfd_xcoff_bfd_final_link (bfd *abfd, struct bfd_link_info *info) for (i = 0; i < abfd->section_count; i++) { - if (flinfo.section_info[i].relocs != NULL) - free (flinfo.section_info[i].relocs); - if (flinfo.section_info[i].rel_hashes != NULL) - free (flinfo.section_info[i].rel_hashes); + free (flinfo.section_info[i].relocs); + free (flinfo.section_info[i].rel_hashes); } free (flinfo.section_info); } - if (flinfo.internal_syms != NULL) - free (flinfo.internal_syms); - if (flinfo.sym_indices != NULL) - free (flinfo.sym_indices); - if (flinfo.outsyms != NULL) - free (flinfo.outsyms); - if (flinfo.linenos != NULL) - free (flinfo.linenos); - if (flinfo.contents != NULL) - free (flinfo.contents); - if (flinfo.external_relocs != NULL) - free (flinfo.external_relocs); - if (external_relocs != NULL) - free (external_relocs); + free (flinfo.internal_syms); + free (flinfo.sym_indices); + free (flinfo.outsyms); + free (flinfo.linenos); + free (flinfo.contents); + free (flinfo.external_relocs); + free (external_relocs); return FALSE; } |