From: Timm Bäder Date: Wed, 17 Feb 2021 08:43:46 +0000 (+0100) Subject: unstrip: Inline find_unalloc_section() into only caller X-Git-Tag: elfutils-0.184~31 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=39c67b8f6c0dcee999eb8e73f8e07a41efb78c2b;p=thirdparty%2Felfutils.git unstrip: Inline find_unalloc_section() into only caller Get rid of an unnecessary nested function this way. Signed-off-by: Timm Bäder --- diff --git a/src/ChangeLog b/src/ChangeLog index 9e7d6cb9b..f358baa26 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2021-02-17 Timm Bäder + + * unstrip.c (copy_elided_sections): Inline find_unalloc_section + function into calling location. The sec pointer is set to NULL + before the if-else statement and only set when match is found. + 2021-02-17 Timm Bäder * unstrip.c (find_alloc_sections_prelink): Move check_match to... diff --git a/src/unstrip.c b/src/unstrip.c index 72fabac8e..90e028316 100644 --- a/src/unstrip.c +++ b/src/unstrip.c @@ -1452,29 +1452,6 @@ more sections in stripped file than debug file -- arguments reversed?")); stripped_symtab = §ions[nalloc]; } - /* Locate a matching unallocated section in SECTIONS. */ - inline struct section *find_unalloc_section (const GElf_Shdr *shdr, - const char *name, - const char *sig) - { - size_t l = nalloc, u = stripped_shnum - 1; - while (l < u) - { - size_t i = (l + u) / 2; - struct section *sec = §ions[i]; - int cmp = compare_unalloc_sections (shdr, &sec->shdr, - name, sec->name, - sig, sec->sig); - if (cmp < 0) - u = i; - else if (cmp > 0) - l = i + 1; - else - return sec; - } - return NULL; - } - Elf_Data *shstrtab = elf_getdata (elf_getscn (unstripped, unstripped_shstrndx), NULL); ELF_CHECK (shstrtab != NULL, @@ -1536,9 +1513,27 @@ more sections in stripped file than debug file -- arguments reversed?")); } else { - /* Look for the section that matches. */ - sec = find_unalloc_section (shdr, name, - get_group_sig (unstripped, shdr)); + /* Locate a matching unallocated section in SECTIONS. */ + const char *sig = get_group_sig (unstripped, shdr); + size_t l = nalloc, u = stripped_shnum - 1; + while (l < u) + { + size_t i = (l + u) / 2; + struct section *section = §ions[i]; + int cmp = compare_unalloc_sections (shdr, §ion->shdr, + name, section->name, + sig, section->sig); + if (cmp < 0) + u = i; + else if (cmp > 0) + l = i + 1; + else + { + sec = section; + break; + } + } + if (sec == NULL) { /* An additional unallocated section is fine if not SHT_NOBITS.