And, it seems, clang is really insistent that Class is an opaque type...

main
theraven 15 years ago
parent fa2e7a9d95
commit e22f66bfae

@ -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;
}

Loading…
Cancel
Save