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.
This commit is contained in:
H.J. Lu 2015-04-20 08:50:01 -07:00
parent d3b47e2bd4
commit e06efbf1c8
2 changed files with 14 additions and 9 deletions

View File

@ -1,3 +1,9 @@
2015-04-20 H.J. Lu <hongjiu.lu@intel.com>
* elf.c (assign_file_positions_for_non_load_sections): Iterate
sections by pointer.
(_bfd_elf_assign_file_positions_for_non_load): Likewise.
2015-04-14 H.J. Lu <hongjiu.lu@intel.com> 2015-04-14 H.J. Lu <hongjiu.lu@intel.com>
* bfd-in.h (compressed_debug_section_type): New. * bfd-in.h (compressed_debug_section_type): New.

View File

@ -5101,7 +5101,7 @@ assign_file_positions_for_non_load_sections (bfd *abfd,
{ {
const struct elf_backend_data *bed = get_elf_backend_data (abfd); const struct elf_backend_data *bed = get_elf_backend_data (abfd);
Elf_Internal_Shdr **i_shdrpp; Elf_Internal_Shdr **i_shdrpp;
Elf_Internal_Shdr **hdrpp; Elf_Internal_Shdr **hdrpp, **end_hdrpp;
Elf_Internal_Phdr *phdrs; Elf_Internal_Phdr *phdrs;
Elf_Internal_Phdr *p; Elf_Internal_Phdr *p;
struct elf_segment_map *m; 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 filehdr_vaddr, filehdr_paddr;
bfd_vma phdrs_vaddr, phdrs_paddr; bfd_vma phdrs_vaddr, phdrs_paddr;
file_ptr off; file_ptr off;
unsigned int num_sec;
unsigned int i;
unsigned int count; unsigned int count;
i_shdrpp = elf_elfsections (abfd); i_shdrpp = elf_elfsections (abfd);
num_sec = elf_numsections (abfd); end_hdrpp = i_shdrpp + elf_numsections (abfd);
off = elf_next_file_pos (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; Elf_Internal_Shdr *hdr;
@ -5308,6 +5306,7 @@ assign_file_positions_for_non_load_sections (bfd *abfd,
} }
else if (m->count != 0) else if (m->count != 0)
{ {
unsigned int i;
if (p->p_type != PT_LOAD if (p->p_type != PT_LOAD
&& (p->p_type != PT_NOTE && (p->p_type != PT_NOTE
|| bfd_get_format (abfd) != bfd_core)) || bfd_get_format (abfd) != bfd_core))
@ -5559,15 +5558,15 @@ static bfd_boolean
_bfd_elf_assign_file_positions_for_non_load (bfd *abfd) _bfd_elf_assign_file_positions_for_non_load (bfd *abfd)
{ {
file_ptr off; file_ptr off;
unsigned int i, num_sec; Elf_Internal_Shdr **shdrpp, **end_shdrpp;
Elf_Internal_Shdr **shdrpp;
Elf_Internal_Ehdr *i_ehdrp; Elf_Internal_Ehdr *i_ehdrp;
const struct elf_backend_data *bed; const struct elf_backend_data *bed;
off = elf_next_file_pos (abfd); off = elf_next_file_pos (abfd);
num_sec = elf_numsections (abfd); shdrpp = elf_elfsections (abfd);
for (i = 1, shdrpp = elf_elfsections (abfd) + 1; i < num_sec; i++, shdrpp++) end_shdrpp = shdrpp + elf_numsections (abfd);
for (shdrpp++; shdrpp < end_shdrpp; shdrpp++)
{ {
Elf_Internal_Shdr *shdrp; Elf_Internal_Shdr *shdrp;