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:
parent
d3b47e2bd4
commit
e06efbf1c8
|
@ -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.
|
||||||
|
|
17
bfd/elf.c
17
bfd/elf.c
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue