diff --git a/objc/objc-api.h b/objc/objc-api.h index 0a9b223..f68ae2d 100644 --- a/objc/objc-api.h +++ b/objc/objc-api.h @@ -550,7 +550,16 @@ class_get_meta_class(Class _class) static inline Class class_get_super_class(Class _class) { - return CLS_ISCLASS(_class)?_class->super_class:Nil; + void __objc_resolve_class_links(void); + if CLS_ISCLASS(_class) + { + if (!CLS_ISRESOLV(_class)) + { + __objc_resolve_class_links(); + } + return _class->super_class; + } + return Nil; } static inline int diff --git a/runtime.c b/runtime.c index e2b13eb..3ca148c 100644 --- a/runtime.c +++ b/runtime.c @@ -397,10 +397,6 @@ const char * class_getName(Class cls) void __objc_resolve_class_links(void); Class class_getSuperclass(Class cls) { - if (!CLS_ISRESOLV(cls)) - { - __objc_resolve_class_links(); - } return class_get_super_class(cls); }