Mercurial > hg > truffle
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.) |