hotspot/src/share/vm/oops/instanceKlass.cpp
changeset 39714 976b97b59d87
parent 39713 29ece76096cb
child 40016 bf6fcd467a7b
equal deleted inserted replaced
39713:29ece76096cb 39714:976b97b59d87
   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