Mercurial > hg > truffle
comparison src/share/vm/classfile/systemDictionary.cpp @ 2244:4f26f535a225
6354181: nsk.logging.stress.threads.scmhml001 fails assertion in "src/share/vm/oops/instanceKlass.cpp, 111"
Reviewed-by: jrose, acorn
author | never |
---|---|
date | Mon, 31 Jan 2011 17:48:21 -0800 |
parents | 3582bf76420e |
children | 2ab52cda08e5 72dee110246f |
comparison
equal
deleted
inserted
replaced
2177:3582bf76420e | 2244: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.) |