From 7d667b9f69774a688c26a0a05acc45f9b9efd86c Mon Sep 17 00:00:00 2001 From: Brian Gianforcaro Date: Thu, 31 Mar 2022 00:29:56 -0700 Subject: [PATCH] LibELF: Remove unused m_program_interpreter member from DynamicLoader While profiling I realized that this member is unused, so the StringBuilder and String allocation are completely un-necessary. --- Userland/Libraries/LibELF/DynamicLoader.cpp | 4 +--- Userland/Libraries/LibELF/DynamicLoader.h | 1 - Userland/Libraries/LibELF/Validation.h | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/Userland/Libraries/LibELF/DynamicLoader.cpp b/Userland/Libraries/LibELF/DynamicLoader.cpp index 793ffb4e4d8..2ea5e16df66 100644 --- a/Userland/Libraries/LibELF/DynamicLoader.cpp +++ b/Userland/Libraries/LibELF/DynamicLoader.cpp @@ -122,11 +122,9 @@ bool DynamicLoader::validate() auto* elf_header = (ElfW(Ehdr)*)m_file_data; if (!validate_elf_header(*elf_header, m_file_size)) return false; - StringBuilder interpreter_path_builder; - auto result_or_error = validate_program_headers(*elf_header, m_file_size, { m_file_data, m_file_size }, &interpreter_path_builder); + auto result_or_error = validate_program_headers(*elf_header, m_file_size, { m_file_data, m_file_size }); if (result_or_error.is_error() || !result_or_error.value()) return false; - m_program_interpreter = interpreter_path_builder.string_view(); return true; } diff --git a/Userland/Libraries/LibELF/DynamicLoader.h b/Userland/Libraries/LibELF/DynamicLoader.h index c6ca8fc7ab4..23ef8ff5c94 100644 --- a/Userland/Libraries/LibELF/DynamicLoader.h +++ b/Userland/Libraries/LibELF/DynamicLoader.h @@ -135,7 +135,6 @@ private: ssize_t negative_offset_from_tls_block_end(ssize_t tls_offset, size_t value_of_symbol) const; String m_filename; - String m_program_interpreter; size_t m_file_size { 0 }; int m_image_fd { -1 }; void* m_file_data { nullptr }; diff --git a/Userland/Libraries/LibELF/Validation.h b/Userland/Libraries/LibELF/Validation.h index 3311f1b29ff..cee09a8c413 100644 --- a/Userland/Libraries/LibELF/Validation.h +++ b/Userland/Libraries/LibELF/Validation.h @@ -13,6 +13,6 @@ namespace ELF { bool validate_elf_header(ElfW(Ehdr) const& elf_header, size_t file_size, bool verbose = true); -ErrorOr validate_program_headers(ElfW(Ehdr) const& elf_header, size_t file_size, ReadonlyBytes buffer, StringBuilder* interpreter_path_builder, bool verbose = true); +ErrorOr validate_program_headers(ElfW(Ehdr) const& elf_header, size_t file_size, ReadonlyBytes buffer, StringBuilder* interpreter_path_builder = nullptr, bool verbose = true); } // end namespace ELF