diff --git a/Source/CDOCClass.h b/Source/CDOCClass.h index 88431c1c9a6..cf36e5e374d 100644 --- a/Source/CDOCClass.h +++ b/Source/CDOCClass.h @@ -15,5 +15,6 @@ @property (copy, readonly) NSString *superClassName; @property (strong) NSArray *instanceVariables; @property (assign) BOOL isExported; +@property (assign) BOOL isSwiftClass; @end diff --git a/Source/CDObjectiveC2Processor.m b/Source/CDObjectiveC2Processor.m index 0efc7152809..a374eacd710 100644 --- a/Source/CDObjectiveC2Processor.m +++ b/Source/CDObjectiveC2Processor.m @@ -218,7 +218,11 @@ - (CDOCClass *)loadClassAtAddress:(uint64_t)address; objc2Class.superclass = [cursor readPtr]; objc2Class.cache = [cursor readPtr]; objc2Class.vtable = [cursor readPtr]; - objc2Class.data = [cursor readPtr]; + + uint64_t value = [cursor readPtr]; + class.isSwiftClass = (value & 0x1) != 0; + objc2Class.data = value & ~7; + objc2Class.reserved1 = [cursor readPtr]; objc2Class.reserved2 = [cursor readPtr]; objc2Class.reserved3 = [cursor readPtr];