summaryrefslogtreecommitdiff
path: root/plugins/rtti/itanium.h
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-03-01 00:34:12 -0500
committerMason Reed <mason@vector35.com>2025-03-19 21:17:34 -0400
commitf719d1d5565f7b7b1237b8e183c2985f006fa3e4 (patch)
tree0fbb2c1af1254add49049abdec3f935669d658de /plugins/rtti/itanium.h
parent93e92844d77b72f07bd7563211d60dc3595cc2e0 (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.h6
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);