Commit bd8d449d by Nicola Pero

Fixed warning from __objc_get_forward_imp not returning a value

From-SVN: r54707
parent 97272202
...@@ -78,33 +78,37 @@ static Method_t search_for_method_in_hierarchy (Class class, SEL sel); ...@@ -78,33 +78,37 @@ static Method_t search_for_method_in_hierarchy (Class class, SEL sel);
Method_t search_for_method_in_list(MethodList_t list, SEL op); Method_t search_for_method_in_list(MethodList_t list, SEL op);
id nil_method(id, SEL, ...); id nil_method(id, SEL, ...);
/* Given a selector, return the proper forwarding implementation. */ /* Given a selector, return the proper forwarding implementation. */
__inline__ __inline__
IMP IMP
__objc_get_forward_imp (SEL sel) __objc_get_forward_imp (SEL sel)
{ {
if (__objc_msg_forward) /* If a custom forwarding hook was registered, try getting a forwarding
{ * function from it. */
IMP result; if (__objc_msg_forward)
if ((result = __objc_msg_forward (sel))) {
return result; IMP result;
} if ((result = __objc_msg_forward (sel)) != NULL)
else return result;
{ }
const char *t = sel->sel_types;
/* In all other cases, use the default forwarding functions built using
if (t && (*t == '[' || *t == '(' || *t == '{') * __builtin_apply and friends. */
#ifdef OBJC_MAX_STRUCT_BY_VALUE {
&& objc_sizeof_type(t) > OBJC_MAX_STRUCT_BY_VALUE const char *t = sel->sel_types;
#endif
) if (t && (*t == '[' || *t == '(' || *t == '{')
return (IMP)__objc_block_forward; #ifdef OBJC_MAX_STRUCT_BY_VALUE
else if (t && (*t == 'f' || *t == 'd')) && objc_sizeof_type(t) > OBJC_MAX_STRUCT_BY_VALUE
return (IMP)__objc_double_forward; #endif
else )
return (IMP)__objc_word_forward; return (IMP)__objc_block_forward;
} else if (t && (*t == 'f' || *t == 'd'))
} return (IMP)__objc_double_forward;
else
return (IMP)__objc_word_forward;
}
}
/* Given a class and selector, return the selector's implementation. */ /* Given a class and selector, return the selector's implementation. */
__inline__ __inline__
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment