From d3122bcfa4735c0f37c42a872d78d6f762568cc5 Mon Sep 17 00:00:00 2001 From: theraven Date: Thu, 1 Jul 2010 18:03:31 +0000 Subject: [PATCH] Make sure BOOLs in class tests are always YES or NO. Make self in +load the correct value (the class, not the metaclass). --- class.h | 2 +- class_table.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/class.h b/class.h index d9a0e93..6d005d3 100644 --- a/class.h +++ b/class.h @@ -167,7 +167,7 @@ static inline void objc_clear_class_flag(struct objc_class *aClass, static inline BOOL objc_test_class_flag(struct objc_class *aClass, enum objc_class_flags flag) { - return aClass->info & (long)flag; + return (aClass->info & (long)flag) == (long)flag; } /** diff --git a/class_table.c b/class_table.c index 39ee17e..869a427 100644 --- a/class_table.c +++ b/class_table.c @@ -42,7 +42,8 @@ void objc_init_load_messages_table(void) void objc_send_load_message(Class class) { - for (struct objc_method_list *l=class->methods ; NULL!=l ; l=l->next) + Class meta = class->isa; + for (struct objc_method_list *l=meta->methods ; NULL!=l ; l=l->next) { for (int i=0 ; icount ; i++) { @@ -218,7 +219,7 @@ BOOL objc_resolve_class(Class cls) // Fix up the ivar offsets objc_compute_ivar_offsets(cls); // Send the +load message, if required - objc_send_load_message(cls->isa); + objc_send_load_message(cls); if (_objc_load_callback) { _objc_load_callback(cls, 0);