[PATCH 13/14] segment_report_module: Inline consider_dyn() into only caller
Timm Bäder
tbaeder@redhat.com
Thu Nov 12 15:04:11 GMT 2020
Signed-off-by: Timm Bäder <tbaeder@redhat.com>
---
libdwfl/dwfl_segment_report_module.c | 40 +++++++++-------------------
1 file changed, 12 insertions(+), 28 deletions(-)
diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c
index 7c97784f..0679453e 100644
--- a/libdwfl/dwfl_segment_report_module.c
+++ b/libdwfl/dwfl_segment_report_module.c
@@ -784,33 +784,6 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
GElf_Addr dynstr_vaddr = 0;
GElf_Xword dynstrsz = 0;
bool execlike = false;
- inline bool consider_dyn (GElf_Sxword tag, GElf_Xword val)
- {
- switch (tag)
- {
- default:
- return false;
-
- case DT_DEBUG:
- execlike = true;
- break;
-
- case DT_SONAME:
- soname_stroff = val;
- break;
-
- case DT_STRTAB:
- dynstr_vaddr = val;
- break;
-
- case DT_STRSZ:
- dynstrsz = val;
- break;
- }
-
- return soname_stroff != 0 && dynstr_vaddr != 0 && dynstrsz != 0;
- }
-
const size_t dyn_entsize = (ei_class == ELFCLASS32
? sizeof (Elf32_Dyn) : sizeof (Elf64_Dyn));
void *dyn_data = NULL;
@@ -848,7 +821,18 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
GElf_Sxword tag = is32 ? d32[i].d_tag : d64[i].d_tag;
GElf_Xword val = is32 ? d32[i].d_un.d_val : d64[i].d_un.d_val;
- if (consider_dyn (tag, val))
+ if (tag == DT_DEBUG)
+ execlike = true;
+ else if (tag == DT_SONAME)
+ soname_stroff = val;
+ else if (tag == DT_STRTAB)
+ dynstr_vaddr = val;
+ else if (tag == DT_STRSZ)
+ dynstrsz = val;
+ else
+ continue;
+
+ if (soname_stroff != 0 && dynstr_vaddr != 0 && dynstrsz != 0)
break;
}
}
--
2.26.2
More information about the Elfutils-devel
mailing list