From 362a420eb027bd1de0a172f1823ba7e4dd806a3a Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Wed, 15 Jan 2025 15:02:39 -0500 Subject: Remove unused calls to defineTypedef which were causing hangs --- view/macho/objc.cpp | 21 +++++++++++---------- view/macho/objc.h | 14 +++++++------- view/sharedcache/core/ObjC.cpp | 20 ++++++++++---------- view/sharedcache/core/ObjC.h | 14 +++++++------- 4 files changed, 35 insertions(+), 34 deletions(-) diff --git a/view/macho/objc.cpp b/view/macho/objc.cpp index adf8eb80..d5d417a5 100644 --- a/view/macho/objc.cpp +++ b/view/macho/objc.cpp @@ -1196,16 +1196,17 @@ void ObjCProcessor::ProcessObjCData() m_symbolQueue = new SymbolQueue(); auto addrSize = m_data->GetAddressSize(); - m_typeNames.relativePtr = defineTypedef(m_data, {"rptr_t"}, Type::IntegerType(4, true)); - auto rptr_t = Type::NamedType(m_data, m_typeNames.relativePtr); - - m_typeNames.id = defineTypedef(m_data, {"id"}, Type::PointerType(addrSize, Type::VoidType())); - m_typeNames.sel = defineTypedef(m_data, {"SEL"}, Type::PointerType(addrSize, Type::IntegerType(1, false))); - - m_typeNames.BOOL = defineTypedef(m_data, {"BOOL"}, Type::IntegerType(1, false)); - m_typeNames.nsInteger = defineTypedef(m_data, {"NSInteger"}, Type::IntegerType(addrSize, true)); - m_typeNames.nsuInteger = defineTypedef(m_data, {"NSUInteger"}, Type::IntegerType(addrSize, false)); - m_typeNames.cgFloat = defineTypedef(m_data, {"CGFloat"}, Type::FloatType(addrSize)); + // m_typeNames.relativePtr = defineTypedef(m_data, {"rptr_t"}, Type::IntegerType(4, true)); + // auto rptr_t = Type::NamedType(m_data, m_typeNames.relativePtr); + auto rptr_t = Type::NamedType(m_data, defineTypedef(m_data, {"rptr_t"}, Type::IntegerType(4, true))); + + // m_typeNames.id = defineTypedef(m_data, {"id"}, Type::PointerType(addrSize, Type::VoidType())); + // m_typeNames.sel = defineTypedef(m_data, {"SEL"}, Type::PointerType(addrSize, Type::IntegerType(1, false))); + // + // m_typeNames.BOOL = defineTypedef(m_data, {"BOOL"}, Type::IntegerType(1, false)); + // m_typeNames.nsInteger = defineTypedef(m_data, {"NSInteger"}, Type::IntegerType(addrSize, true)); + // m_typeNames.nsuInteger = defineTypedef(m_data, {"NSUInteger"}, Type::IntegerType(addrSize, false)); + // m_typeNames.cgFloat = defineTypedef(m_data, {"CGFloat"}, Type::FloatType(addrSize)); // https://github.com/apple-oss-distributions/objc4/blob/196363c165b175ed925ef6b9b99f558717923c47/runtime/objc-abi.h EnumerationBuilder imageInfoFlagBuilder; diff --git a/view/macho/objc.h b/view/macho/objc.h index 639705ad..452cfed0 100644 --- a/view/macho/objc.h +++ b/view/macho/objc.h @@ -147,13 +147,13 @@ namespace BinaryNinja { class ObjCProcessor { struct Types { - QualifiedName relativePtr; - QualifiedName id; - QualifiedName sel; - QualifiedName BOOL; - QualifiedName nsInteger; - QualifiedName nsuInteger; - QualifiedName cgFloat; + // QualifiedName relativePtr; + // QualifiedName id; + // QualifiedName sel; + // QualifiedName BOOL; + // QualifiedName nsInteger; + // QualifiedName nsuInteger; + // QualifiedName cgFloat; QualifiedName cfStringFlag; QualifiedName cfString; QualifiedName cfStringUTF16; diff --git a/view/sharedcache/core/ObjC.cpp b/view/sharedcache/core/ObjC.cpp index 6e998e2a..8d04d8d4 100644 --- a/view/sharedcache/core/ObjC.cpp +++ b/view/sharedcache/core/ObjC.cpp @@ -1245,16 +1245,16 @@ void DSCObjCProcessor::ProcessObjCData(std::shared_ptr vm, std::string baseN m_symbolQueue = new SymbolQueue(); auto addrSize = m_data->GetAddressSize(); - m_typeNames.relativePtr = defineTypedef(m_data, {"rptr_t"}, Type::IntegerType(4, true)); - auto rptr_t = Type::NamedType(m_data, m_typeNames.relativePtr); - - m_typeNames.id = defineTypedef(m_data, {"id"}, Type::PointerType(addrSize, Type::VoidType())); - m_typeNames.sel = defineTypedef(m_data, {"SEL"}, Type::PointerType(addrSize, Type::IntegerType(1, false))); - - m_typeNames.BOOL = defineTypedef(m_data, {"BOOL"}, Type::IntegerType(1, false)); - m_typeNames.nsInteger = defineTypedef(m_data, {"NSInteger"}, Type::IntegerType(addrSize, true)); - m_typeNames.nsuInteger = defineTypedef(m_data, {"NSUInteger"}, Type::IntegerType(addrSize, false)); - m_typeNames.cgFloat = defineTypedef(m_data, {"CGFloat"}, Type::FloatType(addrSize)); + // m_typeNames.relativePtr = ); + auto rptr_t = Type::NamedType(m_data, defineTypedef(m_data, {"rptr_t"}, Type::IntegerType(4, true))); + // + // m_typeNames.id = defineTypedef(m_data, {"id"}, Type::PointerType(addrSize, Type::VoidType())); + // m_typeNames.sel = defineTypedef(m_data, {"SEL"}, Type::PointerType(addrSize, Type::IntegerType(1, false))); + // + // m_typeNames.BOOL = defineTypedef(m_data, {"BOOL"}, Type::IntegerType(1, false)); + // m_typeNames.nsInteger = defineTypedef(m_data, {"NSInteger"}, Type::IntegerType(addrSize, true)); + // m_typeNames.nsuInteger = defineTypedef(m_data, {"NSUInteger"}, Type::IntegerType(addrSize, false)); + // m_typeNames.cgFloat = defineTypedef(m_data, {"CGFloat"}, Type::FloatType(addrSize)); Ref relativeSelectorPtr; auto reader = VMReader(vm); diff --git a/view/sharedcache/core/ObjC.h b/view/sharedcache/core/ObjC.h index 0f4526c0..a308c23a 100644 --- a/view/sharedcache/core/ObjC.h +++ b/view/sharedcache/core/ObjC.h @@ -162,13 +162,13 @@ namespace DSCObjC { class DSCObjCProcessor { struct Types { - QualifiedName relativePtr; - QualifiedName id; - QualifiedName sel; - QualifiedName BOOL; - QualifiedName nsInteger; - QualifiedName nsuInteger; - QualifiedName cgFloat; + // QualifiedName relativePtr; + // QualifiedName id; + // QualifiedName sel; + // QualifiedName BOOL; + // QualifiedName nsInteger; + // QualifiedName nsuInteger; + // QualifiedName cgFloat; QualifiedName cfStringFlag; QualifiedName cfString; QualifiedName cfStringUTF16; -- cgit v1.3.1