equal
deleted
inserted
replaced
607 |
607 |
608 // Initialize the vtable and interface table after |
608 // Initialize the vtable and interface table after |
609 // methods have been rewritten since rewrite may |
609 // methods have been rewritten since rewrite may |
610 // fabricate new Method*s. |
610 // fabricate new Method*s. |
611 // also does loader constraint checking |
611 // also does loader constraint checking |
612 if (!this_k()->is_shared()) { |
612 // |
|
613 // initialize_vtable and initialize_itable need to be rerun for |
|
614 // a shared class if the class is not loaded by the NULL classloader. |
|
615 ClassLoaderData * loader_data = this_k->class_loader_data(); |
|
616 if (!(this_k->is_shared() && |
|
617 loader_data->is_the_null_class_loader_data())) { |
613 ResourceMark rm(THREAD); |
618 ResourceMark rm(THREAD); |
614 this_k->vtable()->initialize_vtable(true, CHECK_false); |
619 this_k->vtable()->initialize_vtable(true, CHECK_false); |
615 this_k->itable()->initialize_itable(true, CHECK_false); |
620 this_k->itable()->initialize_itable(true, CHECK_false); |
616 } |
621 } |
617 #ifdef ASSERT |
622 #ifdef ASSERT |