src/share/vm/classfile/systemDictionary.cpp

changeset 2551
4f26f535a225
parent 2497
3582bf76420e
child 2638
72dee110246f
equal deleted inserted replaced
2497:3582bf76420e 2551:4f26f535a225
1688 // is held, to ensure that the compiler is not using the class hierachy, and that deoptimization will kick in 1688 // is held, to ensure that the compiler is not using the class hierachy, and that deoptimization will kick in
1689 // before a new class is used. 1689 // before a new class is used.
1690 1690
1691 void SystemDictionary::add_to_hierarchy(instanceKlassHandle k, TRAPS) { 1691 void SystemDictionary::add_to_hierarchy(instanceKlassHandle k, TRAPS) {
1692 assert(k.not_null(), "just checking"); 1692 assert(k.not_null(), "just checking");
1693 assert_locked_or_safepoint(Compile_lock);
1694
1693 // Link into hierachy. Make sure the vtables are initialized before linking into 1695 // Link into hierachy. Make sure the vtables are initialized before linking into
1694 k->append_to_sibling_list(); // add to superklass/sibling list 1696 k->append_to_sibling_list(); // add to superklass/sibling list
1695 k->process_interfaces(THREAD); // handle all "implements" declarations 1697 k->process_interfaces(THREAD); // handle all "implements" declarations
1696 k->set_init_state(instanceKlass::loaded); 1698 k->set_init_state(instanceKlass::loaded);
1697 // Now flush all code that depended on old class hierarchy. 1699 // Now flush all code that depended on old class hierarchy.
2150 SystemDictionary_lock->notify_all(); 2152 SystemDictionary_lock->notify_all();
2151 } 2153 }
2152 } 2154 }
2153 2155
2154 2156
2157 // Try to find a class name using the loader constraints. The
2158 // loader constraints might know about a class that isn't fully loaded
2159 // yet and these will be ignored.
2155 klassOop SystemDictionary::find_constrained_instance_or_array_klass( 2160 klassOop SystemDictionary::find_constrained_instance_or_array_klass(
2156 Symbol* class_name, Handle class_loader, TRAPS) { 2161 Symbol* class_name, Handle class_loader, TRAPS) {
2157 2162
2158 // First see if it has been loaded directly. 2163 // First see if it has been loaded directly.
2159 // Force the protection domain to be null. (This removes protection checks.) 2164 // Force the protection domain to be null. (This removes protection checks.)

mercurial