From: Timm Bäder Date: Mon, 23 Nov 2020 12:27:09 +0000 (+0100) Subject: segment_report_module: Inline read_phdr() into only caller X-Git-Tag: elfutils-0.183~80 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b47b7aa0a731e4f50eb92adead67fd8d737d65ba;p=thirdparty%2Felfutils.git segment_report_module: Inline read_phdr() into only caller There is now only one caller for this nested function, so get rid of it by just inlining it there. Signed-off-by: Timm Bäder --- diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 7e28036c6..dd0d2817e 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,8 @@ +2020-11-23 Timm Bäder + + * segment_report_module.c (dwfl_segment_report_module): Remove + read_phdr, do check and call memory_callback directly. + 2020-11-23 Timm Bäder * segment_report_module.c (dwfl_segment_report_module): Do one diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c index 514f40cc6..0729a8f8e 100644 --- a/libdwfl/dwfl_segment_report_module.c +++ b/libdwfl/dwfl_segment_report_module.c @@ -904,31 +904,24 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, { /* We can't use the memory image verbatim as the file image. So we'll be reading into a local image of the virtual file. */ - - inline void read_phdr (GElf_Word type, GElf_Addr vaddr, - GElf_Off offset, GElf_Xword filesz) - { - if (type == PT_LOAD) - { - void *into = contents + offset; - size_t read_size = filesz; - (*memory_callback) (dwfl, - addr_segndx (dwfl, segment, - vaddr + bias, false), - &into, &read_size, vaddr + bias, - read_size, memory_callback_arg); - } - } - for (uint_fast16_t i = 0; i < phnum; ++i) { bool is32 = (ei_class == ELFCLASS32); GElf_Word type = is32 ? p32[i].p_type : p64[i].p_type; + + if (type != PT_LOAD) + continue; + GElf_Addr vaddr = is32 ? p32[i].p_vaddr : p64[i].p_vaddr; GElf_Off offset = is32 ? p32[i].p_offset : p64[i].p_offset; GElf_Xword filesz = is32 ? p32[i].p_filesz : p64[i].p_filesz; - read_phdr (type, vaddr, offset, filesz); + void *into = contents + offset; + size_t read_size = filesz; + (*memory_callback) (dwfl, addr_segndx (dwfl, segment, + vaddr + bias, false), + &into, &read_size, vaddr + bias, read_size, + memory_callback_arg); } } else