Make sure BOOLs in class tests are always YES or NO.

Make self in +load the correct value (the class, not the metaclass).
main
theraven 16 years ago
parent f4e7a7bf5c
commit d3122bcfa4

@ -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, static inline BOOL objc_test_class_flag(struct objc_class *aClass,
enum objc_class_flags flag) enum objc_class_flags flag)
{ {
return aClass->info & (long)flag; return (aClass->info & (long)flag) == (long)flag;
} }
/** /**

@ -42,7 +42,8 @@ void objc_init_load_messages_table(void)
void objc_send_load_message(Class class) 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 ; i<l->count ; i++) for (int i=0 ; i<l->count ; i++)
{ {
@ -218,7 +219,7 @@ BOOL objc_resolve_class(Class cls)
// Fix up the ivar offsets // Fix up the ivar offsets
objc_compute_ivar_offsets(cls); objc_compute_ivar_offsets(cls);
// Send the +load message, if required // Send the +load message, if required
objc_send_load_message(cls->isa); objc_send_load_message(cls);
if (_objc_load_callback) if (_objc_load_callback)
{ {
_objc_load_callback(cls, 0); _objc_load_callback(cls, 0);

Loading…
Cancel
Save