diff options
Diffstat (limited to 'libobjc/selector.c')
-rw-r--r-- | libobjc/selector.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libobjc/selector.c b/libobjc/selector.c index 1d4bc7e..ca8aa42 100644 --- a/libobjc/selector.c +++ b/libobjc/selector.c @@ -95,6 +95,40 @@ __objc_register_selectors_from_list (MethodList_t method_list) objc_mutex_unlock (__objc_runtime_mutex); } +/* Temporary definition while we include objc/objc-api.h instead of + objc-private/module-abi-8.h. It should go away once we include + module-abi-8.h. */ +struct objc_method_description_list +{ + int count; + struct objc_method_description list[1]; +}; + +/* The same as __objc_register_selectors_from_list, but works on a + struct objc_method_description_list* instead of a struct + objc_method_list*. This is only used for protocols, which have + lists of method descriptions, not methods. + */ +void +__objc_register_selectors_from_description_list +(struct objc_method_description_list *method_list) +{ + int i = 0; + + objc_mutex_lock (__objc_runtime_mutex); + while (i < method_list->count) + { + struct objc_method_description *method = &method_list->list[i]; + if (method->name) + { + method->name + = __sel_register_typed_name ((const char *) method->name, + method->types, 0, YES); + } + i += 1; + } + objc_mutex_unlock (__objc_runtime_mutex); +} /* Register instance methods as class methods for root classes */ void __objc_register_instance_methods_to_class (Class class) |