mirror of
https://github.com/LSPosed/LSPlt.git
synced 2025-05-06 21:48:48 +08:00
Refine codes
This commit is contained in:
parent
bf8b87d7cb
commit
5f60a0e30a
@ -152,15 +152,14 @@ Elf::Elf(uintptr_t base_addr) : base_addr_(base_addr) {
|
|||||||
case DT_HASH: {
|
case DT_HASH: {
|
||||||
// ignore DT_HASH when ELF contains DT_GNU_HASH hash table
|
// ignore DT_HASH when ELF contains DT_GNU_HASH hash table
|
||||||
if (bloom_) continue;
|
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];
|
bucket_count_ = raw[0];
|
||||||
chain_count_ = raw[1];
|
|
||||||
bucket_ = raw + 2;
|
bucket_ = raw + 2;
|
||||||
chain_ = bucket_ + bucket_count_;
|
chain_ = bucket_ + bucket_count_;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DT_GNU_HASH: {
|
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];
|
bucket_count_ = raw[0];
|
||||||
sym_offset_ = raw[1];
|
sym_offset_ = raw[1];
|
||||||
bloom_size_ = raw[2];
|
bloom_size_ = raw[2];
|
||||||
|
@ -29,7 +29,6 @@ class Elf {
|
|||||||
uint32_t *bucket_ = nullptr;
|
uint32_t *bucket_ = nullptr;
|
||||||
uint32_t bucket_count_ = 0;
|
uint32_t bucket_count_ = 0;
|
||||||
uint32_t *chain_ = nullptr;
|
uint32_t *chain_ = nullptr;
|
||||||
uint32_t chain_count_ = 0; // invalid for GNU hash
|
|
||||||
|
|
||||||
// append for GNU hash
|
// append for GNU hash
|
||||||
uint32_t sym_offset_ = 0;
|
uint32_t sym_offset_ = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user