Commit a142e7cc by Richard Kenner

(__objc_send_initialize): Call superclass if object does not implement

+initialize.

From-SVN: r9597
parent fa1b1451
...@@ -236,28 +236,34 @@ static void __objc_send_initialize(Class class) ...@@ -236,28 +236,34 @@ static void __objc_send_initialize(Class class)
__objc_send_initialize(class->super_class); __objc_send_initialize(class->super_class);
{ {
MethodList_t method_list = class->class_pointer->methods; SEL op = sel_register_name ("initialize");
SEL op = sel_register_name ("initialize"); Class tmpclass = class;
IMP imp = 0;
/* If not found then we'll search the list. */ while (!imp && tmpclass) {
while (method_list) MethodList_t method_list = tmpclass->class_pointer->methods;
{
while(!imp && method_list) {
int i; int i;
Method_t method;
/* Search the method list. */ for (i=0;i<method_list->method_count;i++) {
for (i = 0; i < method_list->method_count; ++i) method = &(method_list->method_list[i]);
{ if (method->method_name->sel_id == op->sel_id) {
Method_t method = &method_list->method_list[i]; imp = method->method_imp;
break;
if (method->method_name->sel_id == op->sel_id)
(*method->method_imp)((id) class, op);
} }
}
/* The method wasn't found. Follow the link to the next list of
methods. */
method_list = method_list->method_next; method_list = method_list->method_next;
} }
tmpclass = tmpclass->super_class;
}
if (imp)
(*imp)((id)class, op);
} }
} }
} }
......
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