Fixed potential load-order conflict in NSBlocks.

main
theraven 16 years ago
parent cbf41a1fec
commit 8efbf98e55

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

Loading…
Cancel
Save