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,
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)
{
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++)
{
@ -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);

Loading…
Cancel
Save