@@ -37,11 +37,12 @@ class_respondsToSelector(Class cls, SEL sel) { if (cls == Nil) return NO; - return (objc_sparsearray_get(cls->dtable, sel->uid) != NULL ? YES : NO); + return (objc_sparsearray_get(cls->dtable, (uint32_t)sel->uid) != NULL + ? YES : NO); } #if !defined(__ELF__) || (!defined(OF_X86_ASM) && !defined(OF_AMD64_ASM)) static id nil_method(id self, SEL _cmd) @@ -55,11 +56,13 @@ IMP imp; if (obj == nil) return (IMP)nil_method; - if ((imp = objc_sparsearray_get(obj->isa->dtable, sel->uid)) == NULL) + imp = objc_sparsearray_get(obj->isa->dtable, (uint32_t)sel->uid); + + if (imp == NULL) return objc_forward_handler(obj, sel); return imp; } @@ -69,13 +72,13 @@ IMP imp; if (super->self == nil) return (IMP)nil_method; - imp = objc_sparsearray_get(super->class->dtable, sel->uid); + imp = objc_sparsearray_get(super->class->dtable, (uint32_t)sel->uid); if (imp == NULL) return objc_forward_handler(super->self, sel); return imp; } #endif