diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2015-04-20 08:50:01 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2015-04-20 08:50:01 -0700 |
commit | e06efbf1c8198e25ef36a9787862f9720a94ba7b (patch) | |
tree | d85213d1c6c12e3de9c5c275e1fa9a56f3d2c802 /bfd/elf.c | |
parent | d3b47e2bd4f2924e965c586d3bf4d0b0cc6b40cc (diff) | |
download | fsf-binutils-gdb-e06efbf1c8198e25ef36a9787862f9720a94ba7b.zip fsf-binutils-gdb-e06efbf1c8198e25ef36a9787862f9720a94ba7b.tar.gz fsf-binutils-gdb-e06efbf1c8198e25ef36a9787862f9720a94ba7b.tar.bz2 |
Iterate ELF sections by pointer
Iterate ELF sections by pointer without section counter. It removes
"i++".
* elf.c (assign_file_positions_for_non_load_sections): Iterate
sections by pointer.
(_bfd_elf_assign_file_positions_for_non_load): Likewise.
Diffstat (limited to 'bfd/elf.c')
-rw-r--r-- | bfd/elf.c | 17 |
1 files changed, 8 insertions, 9 deletions
@@ -5101,7 +5101,7 @@ assign_file_positions_for_non_load_sections (bfd *abfd, { const struct elf_backend_data *bed = get_elf_backend_data (abfd); Elf_Internal_Shdr **i_shdrpp; - Elf_Internal_Shdr **hdrpp; + Elf_Internal_Shdr **hdrpp, **end_hdrpp; Elf_Internal_Phdr *phdrs; Elf_Internal_Phdr *p; struct elf_segment_map *m; @@ -5109,14 +5109,12 @@ assign_file_positions_for_non_load_sections (bfd *abfd, bfd_vma filehdr_vaddr, filehdr_paddr; bfd_vma phdrs_vaddr, phdrs_paddr; file_ptr off; - unsigned int num_sec; - unsigned int i; unsigned int count; i_shdrpp = elf_elfsections (abfd); - num_sec = elf_numsections (abfd); + end_hdrpp = i_shdrpp + elf_numsections (abfd); off = elf_next_file_pos (abfd); - for (i = 1, hdrpp = i_shdrpp + 1; i < num_sec; i++, hdrpp++) + for (hdrpp = i_shdrpp + 1; hdrpp < end_hdrpp; hdrpp++) { Elf_Internal_Shdr *hdr; @@ -5308,6 +5306,7 @@ assign_file_positions_for_non_load_sections (bfd *abfd, } else if (m->count != 0) { + unsigned int i; if (p->p_type != PT_LOAD && (p->p_type != PT_NOTE || bfd_get_format (abfd) != bfd_core)) @@ -5559,15 +5558,15 @@ static bfd_boolean _bfd_elf_assign_file_positions_for_non_load (bfd *abfd) { file_ptr off; - unsigned int i, num_sec; - Elf_Internal_Shdr **shdrpp; + Elf_Internal_Shdr **shdrpp, **end_shdrpp; Elf_Internal_Ehdr *i_ehdrp; const struct elf_backend_data *bed; off = elf_next_file_pos (abfd); - num_sec = elf_numsections (abfd); - for (i = 1, shdrpp = elf_elfsections (abfd) + 1; i < num_sec; i++, shdrpp++) + shdrpp = elf_elfsections (abfd); + end_shdrpp = shdrpp + elf_numsections (abfd); + for (shdrpp++; shdrpp < end_shdrpp; shdrpp++) { Elf_Internal_Shdr *shdrp; |