296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
|
{
struct objc_method_list *ml;
struct objc_category **cats;
unsigned int i;
objc_global_mutex_lock();
for (ml = cls->isa->methodlist; ml != NULL; ml = ml->next) {
for (i = 0; i < ml->count; i++) {
if (ml->methods[i].sel.uid == sel->uid) {
const char *ret = ml->methods[i].sel.types;
objc_global_mutex_unlock();
return ret;
}
}
}
if ((cats = objc_categories_for_class(cls)) != NULL) {
for (; *cats != NULL; cats++) {
for (ml = (*cats)->class_methods; ml != NULL;
ml = ml->next) {
for (i = 0; i < ml->count; i++) {
if (ml->methods[i].sel.uid ==
sel->uid) {
const char *ret =
ml->methods[i].sel.types;
objc_global_mutex_unlock();
|
|
|
|
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
|
{
struct objc_method_list *ml;
struct objc_category **cats;
unsigned int i;
objc_global_mutex_lock();
for (ml = cls->methodlist; ml != NULL; ml = ml->next) {
for (i = 0; i < ml->count; i++) {
if (ml->methods[i].sel.uid == sel->uid) {
const char *ret = ml->methods[i].sel.types;
objc_global_mutex_unlock();
return ret;
}
}
}
if ((cats = objc_categories_for_class(cls)) != NULL) {
for (; *cats != NULL; cats++) {
for (ml = (*cats)->instance_methods; ml != NULL;
ml = ml->next) {
for (i = 0; i < ml->count; i++) {
if (ml->methods[i].sel.uid ==
sel->uid) {
const char *ret =
ml->methods[i].sel.types;
objc_global_mutex_unlock();
|