From e22f66bfae5d34b3b6a0f0766a69b6c49f55968e Mon Sep 17 00:00:00 2001 From: theraven Date: Tue, 22 Feb 2011 00:14:22 +0000 Subject: [PATCH] And, it seems, clang is really insistent that Class is an opaque type... --- sync.m | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sync.m b/sync.m index 194bb91..b32854f 100644 --- a/sync.m +++ b/sync.m @@ -62,7 +62,7 @@ static Class allocateLockClass(Class superclass) { newClass->info |= objc_class_flag_meta; } - mutex_t *lock = (void*)(newClass+1); + mutex_t *lock = (void*)((struct objc_class*)newClass+1); INIT_LOCK(*lock); return newClass; @@ -98,7 +98,7 @@ static void deallocLockClass(id obj, SEL _cmd) objc_msg_lookup_super(&super, SELECTOR(dealloc))(obj, SELECTOR(dealloc)); // After calling [super dealloc], the object will no longer exist. // Free the lock - mutex_t *lock = (void*)(lockClass+1); + mutex_t *lock = (void*)((struct objc_class*)lockClass+1); DESTROY_LOCK(lock); // FIXME: Low memory profile. @@ -124,7 +124,7 @@ int objc_sync_enter(id obj) } UNLOCK(&at_sync_init_lock); } - mutex_t *lock = (void*)(lockClass+1); + mutex_t *lock = (void*)((struct objc_class*)lockClass+1); LOCK(lock); return 0; } @@ -132,7 +132,7 @@ int objc_sync_enter(id obj) int objc_sync_exit(id obj) { Class lockClass = findLockClass(obj); - mutex_t *lock = (void*)(lockClass+1); + mutex_t *lock = (void*)((struct objc_class*)lockClass+1); UNLOCK(lock); return 0; }