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.) |