]> git.saurik.com Git - apple/objc4.git/blobdiff - runtime/NSObject-internal.h
objc4-818.2.tar.gz
[apple/objc4.git] / runtime / NSObject-internal.h
index c23fbc2d4126e81b83845d3b1494df59e5513248..978799a5eea5316600060b95b624bf4f6cce5c97 100644 (file)
@@ -123,6 +123,16 @@ struct magic_t {
 class AutoreleasePoolPage;
 struct AutoreleasePoolPageData
 {
+#if SUPPORT_AUTORELEASEPOOL_DEDUP_PTRS
+    struct AutoreleasePoolEntry {
+        uintptr_t ptr: 48;
+        uintptr_t count: 16;
+
+        static const uintptr_t maxCount = 65535; // 2^16 - 1
+    };
+    static_assert((AutoreleasePoolEntry){ .ptr = MACH_VM_MAX_ADDRESS }.ptr == MACH_VM_MAX_ADDRESS, "MACH_VM_MAX_ADDRESS doesn't fit into AutoreleasePoolEntry::ptr!");
+#endif
+
        magic_t const magic;
        __unsafe_unretained id *next;
        pthread_t const thread;