diff options
| author | Mason Reed <mason@vector35.com> | 2025-03-01 00:34:12 -0500 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2025-03-19 21:17:34 -0400 |
| commit | f719d1d5565f7b7b1237b8e183c2985f006fa3e4 (patch) | |
| tree | 0fbb2c1af1254add49049abdec3f935669d658de /plugins/rtti/itanium.h | |
| parent | 93e92844d77b72f07bd7563211d60dc3595cc2e0 (diff) | |
Refactor and fixup MSVC and Itanium RTTI
Bunch of misc fixes and performance improvements
Diffstat (limited to 'plugins/rtti/itanium.h')
| -rw-r--r-- | plugins/rtti/itanium.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/plugins/rtti/itanium.h b/plugins/rtti/itanium.h index 98fe7052..7fdd23e5 100644 --- a/plugins/rtti/itanium.h +++ b/plugins/rtti/itanium.h @@ -58,7 +58,7 @@ namespace BinaryNinja::RTTI::Itanium { { uint64_t base_type; uint64_t offset_flags; - OffsetFlagsMasks offset_flags_masks; + uint64_t offset_flags_masks; BaseClassTypeInfo(BinaryView *view, uint64_t address); }; @@ -114,9 +114,11 @@ namespace BinaryNinja::RTTI::Itanium { bool checkWritableRData; bool virtualFunctionTableSweep; + std::optional<BaseClassInfo> ProcessVFTBaseClassInfo(uint64_t vftAddr, ClassInfo &classInfo); + std::optional<ClassInfo> ProcessRTTI(uint64_t objectAddr) override; - std::optional<VirtualFunctionTableInfo> ProcessVFT(uint64_t vftAddr, ClassInfo &classInfo) override; + std::optional<VirtualFunctionTableInfo> ProcessVFT(uint64_t vftAddr, ClassInfo &classInfo, std::optional<BaseClassInfo> baseClassInfo) override; public: explicit ItaniumRTTIProcessor(const Ref<BinaryView> &view, bool useMangled = true, bool checkRData = true, bool vttSweep = true); |
