diff --git a/NSBlocks.m b/NSBlocks.m index 183c494..3ad1026 100644 --- a/NSBlocks.m +++ b/NSBlocks.m @@ -11,9 +11,8 @@ struct objc_class _NSConcreteStackBlock; void __objc_update_dispatch_table_for_class(Class); extern struct sarray *__objc_uninstalled_dtable; extern objc_mutex_t __objc_runtime_mutex; -static void createNSBlockSubclass(Class newClass, char *name) +static void createNSBlockSubclass(Class superclass, Class newClass, char *name) { - Class superclass = [NSBlock class]; // Create the metaclass Class metaClass = calloc(1, sizeof(struct objc_class)); @@ -49,8 +48,8 @@ static void createNSBlockSubclass(Class newClass, char *name) @implementation NSBlock + (void)load { - createNSBlockSubclass(&_NSConcreteGlobalBlock, "_NSConcreteGlobalBlockPrivate"); - createNSBlockSubclass(&_NSConcreteStackBlock, "_NSConcreteStackBlockPrivate"); + createNSBlockSubclass(self, &_NSConcreteGlobalBlock, "_NSConcreteGlobalBlockPrivate"); + createNSBlockSubclass(self, &_NSConcreteStackBlock, "_NSConcreteStackBlockPrivate"); } @end