comparison src/share/vm/classfile/systemDictionary.cpp @ 2273:2ab52cda08e5

Merge with OpenJDK.
author Thomas Wuerthinger <thomas.wuerthinger@gmail.com>
date Thu, 03 Mar 2011 19:25:53 +0100
parents d25d4ca69222 4f26f535a225
children 0654ee04b214
comparison
equal deleted inserted replaced
2219:0a14ff0a8cc4 2273:2ab52cda08e5
1689 // is held, to ensure that the compiler is not using the class hierachy, and that deoptimization will kick in 1689 // is held, to ensure that the compiler is not using the class hierachy, and that deoptimization will kick in
1690 // before a new class is used. 1690 // before a new class is used.
1691 1691
1692 void SystemDictionary::add_to_hierarchy(instanceKlassHandle k, TRAPS) { 1692 void SystemDictionary::add_to_hierarchy(instanceKlassHandle k, TRAPS) {
1693 assert(k.not_null(), "just checking"); 1693 assert(k.not_null(), "just checking");
1694 assert_locked_or_safepoint(Compile_lock);
1695
1694 // Link into hierachy. Make sure the vtables are initialized before linking into 1696 // Link into hierachy. Make sure the vtables are initialized before linking into
1695 k->append_to_sibling_list(); // add to superklass/sibling list 1697 k->append_to_sibling_list(); // add to superklass/sibling list
1696 k->process_interfaces(THREAD); // handle all "implements" declarations 1698 k->process_interfaces(THREAD); // handle all "implements" declarations
1697 k->set_init_state(instanceKlass::loaded); 1699 k->set_init_state(instanceKlass::loaded);
1698 // Now flush all code that depended on old class hierarchy. 1700 // Now flush all code that depended on old class hierarchy.
2151 SystemDictionary_lock->notify_all(); 2153 SystemDictionary_lock->notify_all();
2152 } 2154 }
2153 } 2155 }
2154 2156
2155 2157
2158 // Try to find a class name using the loader constraints. The
2159 // loader constraints might know about a class that isn't fully loaded
2160 // yet and these will be ignored.
2156 klassOop SystemDictionary::find_constrained_instance_or_array_klass( 2161 klassOop SystemDictionary::find_constrained_instance_or_array_klass(
2157 Symbol* class_name, Handle class_loader, TRAPS) { 2162 Symbol* class_name, Handle class_loader, TRAPS) {
2158 2163
2159 // First see if it has been loaded directly. 2164 // First see if it has been loaded directly.
2160 // Force the protection domain to be null. (This removes protection checks.) 2165 // Force the protection domain to be null. (This removes protection checks.)