| 58 | }; |
| 59 | |
| 60 | class MicrosoftRTTIProcessor : public RTTIProcessor |
| 61 | { |
| 62 | bool allowMangledClassNames; |
| 63 | bool allowAnonymousClassNames; |
| 64 | bool checkWritableRData; |
| 65 | bool virtualFunctionTableSweep; |
| 66 | |
| 67 | // This will process a CHD and store all `BaseClassInfo` in `classInfo`. |
| 68 | std::vector<BaseClassInfo> ProcessClassHierarchyDescriptor(uint64_t address, CompleteObjectLocator &coLocator, const ClassInfo &classInfo); |
| 69 | |
| 70 | std::optional<ClassInfo> ProcessRTTI(uint64_t objectAddr) override; |
| 71 | |
| 72 | std::optional<VirtualFunctionTableInfo> ProcessVFT(uint64_t vftAddr, ClassInfo &classInfo, std::optional<BaseClassInfo> baseClassInfo) override; |
| 73 | public: |
| 74 | explicit MicrosoftRTTIProcessor(const Ref<BinaryView> &view, bool useMangled = true, bool checkRData = true, bool vftSweep = true, bool allowAnonymous = true); |
| 75 | |
| 76 | void ProcessRTTI() override; |
| 77 | |
| 78 | void ProcessVFT() override; |
| 79 | }; |
| 80 | } |
no outgoing calls
no test coverage detected