Refine codes

This commit is contained in:
LoveSy 2022-11-27 01:28:43 +08:00
parent bf8b87d7cb
commit 5f60a0e30a
No known key found for this signature in database
2 changed files with 2 additions and 4 deletions

View File

@ -152,15 +152,14 @@ Elf::Elf(uintptr_t base_addr) : base_addr_(base_addr) {
case DT_HASH: {
// ignore DT_HASH when ELF contains DT_GNU_HASH hash table
if (bloom_) continue;
auto *raw = reinterpret_cast<ElfW(Word) *>(bias_addr_, dynamic->d_un.d_ptr);
auto *raw = reinterpret_cast<ElfW(Word) *>(bias_addr_ + dynamic->d_un.d_ptr);
bucket_count_ = raw[0];
chain_count_ = raw[1];
bucket_ = raw + 2;
chain_ = bucket_ + bucket_count_;
break;
}
case DT_GNU_HASH: {
auto *raw = reinterpret_cast<ElfW(Word) *>(bias_addr_, dynamic->d_un.d_ptr);
auto *raw = reinterpret_cast<ElfW(Word) *>(bias_addr_ + dynamic->d_un.d_ptr);
bucket_count_ = raw[0];
sym_offset_ = raw[1];
bloom_size_ = raw[2];

View File

@ -29,7 +29,6 @@ class Elf {
uint32_t *bucket_ = nullptr;
uint32_t bucket_count_ = 0;
uint32_t *chain_ = nullptr;
uint32_t chain_count_ = 0; // invalid for GNU hash
// append for GNU hash
uint32_t sym_offset_ = 0;