]> git.saurik.com Git - apple/objc4.git/blobdiff - test/swiftMetadataInitializerRealloc.m
objc4-818.2.tar.gz
[apple/objc4.git] / test / swiftMetadataInitializerRealloc.m
index c50d1dc68c775b05fbd586d067b8e0d23962dbcf..9e72211415150dc58cce2275f6450d691dbf52f8 100644 (file)
@@ -65,6 +65,9 @@ Class initSub(Class cls, void *arg)
     // Example: rdar://problem/50707074
     Class HeapSwiftSub = (Class)malloc(OBJC_MAX_CLASS_SIZE);
     memcpy(HeapSwiftSub, RawRealSwiftSub, OBJC_MAX_CLASS_SIZE);
+    // Re-sign the isa and super pointers in the new location.
+    ((Class __ptrauth_objc_isa_pointer *)(void *)HeapSwiftSub)[0] = ((Class __ptrauth_objc_isa_pointer *)(void *)RawRealSwiftSub)[0];
+    ((Class __ptrauth_objc_super_pointer *)(void *)HeapSwiftSub)[1] = ((Class __ptrauth_objc_super_pointer *)(void *)RawRealSwiftSub)[1];
 
     testprintf("initSub beginning _objc_realizeClassFromSwift\n");
     _objc_realizeClassFromSwift(HeapSwiftSub, cls);