From 8efbf98e55ea247648a7508eb5d4327ab57a7af3 Mon Sep 17 00:00:00 2001 From: theraven Date: Tue, 24 Nov 2009 13:20:48 +0000 Subject: [PATCH] Fixed potential load-order conflict in NSBlocks. --- NSBlocks.m | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) 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