hotspot/src/share/vm/classfile/systemDictionary.cpp
changeset 9172 a4e13ccafc44
parent 9116 9bc44be338d6
child 9630 d6419e4395e3
equal deleted inserted replaced
9171:16f9b07adedb 9172:a4e13ccafc44
  1252       objArrayHandle methods (THREAD, ik->methods());
  1252       objArrayHandle methods (THREAD, ik->methods());
  1253       int num_methods = methods->length();
  1253       int num_methods = methods->length();
  1254       for (int index2 = 0; index2 < num_methods; ++index2) {
  1254       for (int index2 = 0; index2 < num_methods; ++index2) {
  1255         methodHandle m(THREAD, methodOop(methods->obj_at(index2)));
  1255         methodHandle m(THREAD, methodOop(methods->obj_at(index2)));
  1256         m()->link_method(m, CHECK_(nh));
  1256         m()->link_method(m, CHECK_(nh));
       
  1257       }
       
  1258       if (JvmtiExport::has_redefined_a_class()) {
       
  1259         // Reinitialize vtable because RedefineClasses may have changed some
       
  1260         // entries in this vtable for super classes so the CDS vtable might
       
  1261         // point to old or obsolete entries.  RedefineClasses doesn't fix up
       
  1262         // vtables in the shared system dictionary, only the main one.
       
  1263         // It also redefines the itable too so fix that too.
       
  1264         ResourceMark rm(THREAD);
       
  1265         ik->vtable()->initialize_vtable(false, CHECK_(nh));
       
  1266         ik->itable()->initialize_itable(false, CHECK_(nh));
  1257       }
  1267       }
  1258     }
  1268     }
  1259 
  1269 
  1260     if (TraceClassLoading) {
  1270     if (TraceClassLoading) {
  1261       ResourceMark rm;
  1271       ResourceMark rm;