diff options
author | Daniel Bertalan <dani@danielbertalan.dev> | 2021-08-09 22:50:51 +0200 |
---|---|---|
committer | Gunnar Beutner <gunnar@beutner.name> | 2021-08-09 23:15:48 +0200 |
commit | 18b24849858a3ee705495a3da29e2762e1ddeb0e (patch) | |
tree | a07427832efe52f6dd49a363e66a885cda17cd0b /Userland/Libraries/LibELF | |
parent | e0e3198d516a9a53239bbe7e5dfb76f3e78cef70 (diff) | |
download | serenity-18b24849858a3ee705495a3da29e2762e1ddeb0e.zip |
LibELF: Remove `(FlatPtr)something.as_ptr()` idiom
This is equivalent to `something.get()`, but more verbose.
Diffstat (limited to 'Userland/Libraries/LibELF')
-rw-r--r-- | Userland/Libraries/LibELF/DynamicLoader.cpp | 8 | ||||
-rw-r--r-- | Userland/Libraries/LibELF/DynamicObject.cpp | 20 |
2 files changed, 14 insertions, 14 deletions
diff --git a/Userland/Libraries/LibELF/DynamicLoader.cpp b/Userland/Libraries/LibELF/DynamicLoader.cpp index f8cfb21a56..5574468b5b 100644 --- a/Userland/Libraries/LibELF/DynamicLoader.cpp +++ b/Userland/Libraries/LibELF/DynamicLoader.cpp @@ -468,9 +468,9 @@ DynamicLoader::RelocationResult DynamicLoader::do_relocation(const ELF::DynamicO // We could explicitly do them first using m_number_of_relocations from DT_RELCOUNT // However, our compiler is nice enough to put them at the front of the relocations for us :) if (relocation.addend_used()) - *patch_ptr = (FlatPtr)m_dynamic_object->base_address().as_ptr() + relocation.addend(); + *patch_ptr = m_dynamic_object->base_address().offset(relocation.addend()).get(); else - *patch_ptr += (FlatPtr)m_dynamic_object->base_address().as_ptr(); + *patch_ptr += m_dynamic_object->base_address().get(); break; } #if ARCH(I386) @@ -508,10 +508,10 @@ DynamicLoader::RelocationResult DynamicLoader::do_relocation(const ELF::DynamicO // The patch method returns the address for the LAZY fixup path, but we don't need it here m_dynamic_object->patch_plt_entry(relocation.offset_in_section()); } else { - u8* relocation_address = relocation.address().as_ptr(); + auto relocation_address = (FlatPtr*)relocation.address().as_ptr(); if (m_elf_image.is_dynamic()) - *(FlatPtr*)relocation_address += (FlatPtr)m_dynamic_object->base_address().as_ptr(); + *relocation_address += m_dynamic_object->base_address().get(); } break; } diff --git a/Userland/Libraries/LibELF/DynamicObject.cpp b/Userland/Libraries/LibELF/DynamicObject.cpp index c79cd5f04b..234c9ac97e 100644 --- a/Userland/Libraries/LibELF/DynamicObject.cpp +++ b/Userland/Libraries/LibELF/DynamicObject.cpp @@ -67,19 +67,19 @@ void DynamicObject::parse() for_each_dynamic_entry([&](const DynamicEntry& entry) { switch (entry.tag()) { case DT_INIT: - m_init_offset = entry.ptr() - (FlatPtr)m_elf_base_address.as_ptr(); + m_init_offset = entry.ptr() - m_elf_base_address.get(); break; case DT_FINI: - m_fini_offset = entry.ptr() - (FlatPtr)m_elf_base_address.as_ptr(); + m_fini_offset = entry.ptr() - m_elf_base_address.get(); break; case DT_INIT_ARRAY: - m_init_array_offset = entry.ptr() - (FlatPtr)m_elf_base_address.as_ptr(); + m_init_array_offset = entry.ptr() - m_elf_base_address.get(); break; case DT_INIT_ARRAYSZ: m_init_array_size = entry.val(); break; case DT_FINI_ARRAY: - m_fini_array_offset = entry.ptr() - (FlatPtr)m_elf_base_address.as_ptr(); + m_fini_array_offset = entry.ptr() - m_elf_base_address.get(); break; case DT_FINI_ARRAYSZ: m_fini_array_size = entry.val(); @@ -87,18 +87,18 @@ void DynamicObject::parse() case DT_HASH: // Use SYSV hash only if GNU hash is not available if (m_hash_type == HashType::SYSV) { - m_hash_table_offset = entry.ptr() - (FlatPtr)m_elf_base_address.as_ptr(); + m_hash_table_offset = entry.ptr() - m_elf_base_address.get(); } break; case DT_GNU_HASH: m_hash_type = HashType::GNU; - m_hash_table_offset = entry.ptr() - (FlatPtr)m_elf_base_address.as_ptr(); + m_hash_table_offset = entry.ptr() - m_elf_base_address.get(); break; case DT_SYMTAB: - m_symbol_table_offset = entry.ptr() - (FlatPtr)m_elf_base_address.as_ptr(); + m_symbol_table_offset = entry.ptr() - m_elf_base_address.get(); break; case DT_STRTAB: - m_string_table_offset = entry.ptr() - (FlatPtr)m_elf_base_address.as_ptr(); + m_string_table_offset = entry.ptr() - m_elf_base_address.get(); break; case DT_STRSZ: m_size_of_string_table = entry.val(); @@ -457,7 +457,7 @@ VirtualAddress DynamicObject::patch_plt_entry(u32 relocation_offset) VERIFY(relocation.type() == R_X86_64_JUMP_SLOT); #endif auto symbol = relocation.symbol(); - u8* relocation_address = relocation.address().as_ptr(); + auto relocation_address = (FlatPtr*)relocation.address().as_ptr(); VirtualAddress symbol_location; auto result = DynamicLoader::lookup_symbol(symbol); @@ -470,7 +470,7 @@ VirtualAddress DynamicObject::patch_plt_entry(u32 relocation_offset) dbgln_if(DYNAMIC_LOAD_DEBUG, "DynamicLoader: Jump slot relocation: putting {} ({}) into PLT at {}", symbol.name(), symbol_location, (void*)relocation_address); - *(FlatPtr*)relocation_address = symbol_location.get(); + *relocation_address = symbol_location.get(); return symbol_location; } |