614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
|
IMP
class_getMethodImplementation(Class cls, SEL sel)
{
return objc_sparsearray_get(cls->dtable, (uint32_t)sel->uid);
}
const char*
objc_get_type_encoding(Class cls, SEL sel)
{
struct objc_method_list *ml;
struct objc_category **cats;
unsigned int i;
objc_global_mutex_lock();
|
|
|
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
|
IMP
class_getMethodImplementation(Class cls, SEL sel)
{
return objc_sparsearray_get(cls->dtable, (uint32_t)sel->uid);
}
const char*
class_getMethodTypeEncoding(Class cls, SEL sel)
{
struct objc_method_list *ml;
struct objc_category **cats;
unsigned int i;
objc_global_mutex_lock();
|
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
|
}
}
}
}
objc_global_mutex_unlock();
if (cls->superclass != NULL)
return objc_get_type_encoding(cls->superclass, sel);
return NULL;
}
IMP
class_replaceMethod(Class cls, SEL sel, IMP newimp, const char *types)
{
|
|
|
|
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
|
}
}
}
}
objc_global_mutex_unlock();
if (cls->superclass != Nil)
return class_getMethodTypeEncoding(cls->superclass, sel);
return NULL;
}
IMP
class_replaceMethod(Class cls, SEL sel, IMP newimp, const char *types)
{
|