12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- SWIFT_CLASS(RealSwiftDylib1A, NSObject, nop);
- SWIFT_STUB_CLASS(SwiftDylib1A, initSwiftDylib1A)
- SWIFT_CLASS(RealSwiftDylib1B, NSObject, nop);
- SWIFT_STUB_CLASS(SwiftDylib1B, initSwiftDylib1B)
- int Dylib1AInits = 0
- @interface SwiftDylib1A: NSObject @end
- @interface SwiftDylib1B: NSObject @end
- @implementation SwiftDylib1A (Category)
- - (const char *)dylib1ACategoryInSameDylib { return "dylib1ACategoryInSameDylib"
- @end
- @implementation SwiftDylib1B (Category)
- - (const char *)dylib1BCategoryInSameDylib { return "dylib1BCategoryInSameDylib"
- @end
- EXTERN_C Class initSwiftDylib1A(Class cls, void *arg)
- {
- Dylib1AInits++
- testassert(arg == nil)
- testassert(cls == RawSwiftDylib1A)
-
- if (Dylib1AInits == 1)
- _objc_realizeClassFromSwift(RawRealSwiftDylib1A, cls)
-
- return RawRealSwiftDylib1A
- }
- int Dylib1BInits = 0
- EXTERN_C Class initSwiftDylib1B(Class cls, void *arg)
- {
- Dylib1BInits++
- testassert(arg == nil)
- testassert(cls == RawSwiftDylib1B)
-
- if (Dylib1BInits == 1)
- _objc_realizeClassFromSwift(RawRealSwiftDylib1B, cls)
-
- return RawRealSwiftDylib1B
- }
- EXTERN_C Class objc_loadClassref(_Nullable Class * _Nonnull clsref)
- void Dylib1Test(void) {
- testassert((uintptr_t)SwiftDylib1AClassref & 1)
- Class SwiftDylib1A = objc_loadClassref(&SwiftDylib1AClassref);
- testassert(((uintptr_t)SwiftDylib1AClassref & 1) == 0)
- testassert(SwiftDylib1A == [SwiftDylib1A class])
- testassert(SwiftDylib1A == SwiftDylib1AClassref);
- testassert(Dylib1AInits == 2)
-
- testassert((uintptr_t)SwiftDylib1BClassref & 1)
- Class SwiftDylib1B = objc_loadClassref(&SwiftDylib1BClassref);
- testassert(((uintptr_t)SwiftDylib1BClassref & 1) == 0)
- testassert(SwiftDylib1B == [SwiftDylib1B class])
- testassert(SwiftDylib1B == SwiftDylib1BClassref);
- testassert(Dylib1BInits == 2)
- }
|