equal
deleted
inserted
replaced
819 // initialize_vtable and initialize_itable need to be rerun for |
819 // initialize_vtable and initialize_itable need to be rerun for |
820 // a shared class if the class is not loaded by the NULL classloader. |
820 // a shared class if the class is not loaded by the NULL classloader. |
821 ClassLoaderData * loader_data = class_loader_data(); |
821 ClassLoaderData * loader_data = class_loader_data(); |
822 if (!(is_shared() && |
822 if (!(is_shared() && |
823 loader_data->is_the_null_class_loader_data())) { |
823 loader_data->is_the_null_class_loader_data())) { |
824 ResourceMark rm(THREAD); |
|
825 vtable().initialize_vtable(true, CHECK_false); |
824 vtable().initialize_vtable(true, CHECK_false); |
826 itable().initialize_itable(true, CHECK_false); |
825 itable().initialize_itable(true, CHECK_false); |
827 } |
826 } |
828 #ifdef ASSERT |
827 #ifdef ASSERT |
829 else { |
828 else { |
2324 // Reinitialize vtable because RedefineClasses may have changed some |
2323 // Reinitialize vtable because RedefineClasses may have changed some |
2325 // entries in this vtable for super classes so the CDS vtable might |
2324 // entries in this vtable for super classes so the CDS vtable might |
2326 // point to old or obsolete entries. RedefineClasses doesn't fix up |
2325 // point to old or obsolete entries. RedefineClasses doesn't fix up |
2327 // vtables in the shared system dictionary, only the main one. |
2326 // vtables in the shared system dictionary, only the main one. |
2328 // It also redefines the itable too so fix that too. |
2327 // It also redefines the itable too so fix that too. |
2329 ResourceMark rm(THREAD); |
|
2330 vtable().initialize_vtable(false, CHECK); |
2328 vtable().initialize_vtable(false, CHECK); |
2331 itable().initialize_itable(false, CHECK); |
2329 itable().initialize_itable(false, CHECK); |
2332 } |
2330 } |
2333 |
2331 |
2334 // restore constant pool resolved references |
2332 // restore constant pool resolved references |