equal
deleted
inserted
replaced
25 #ifndef SHARE_VM_CLASSFILE_SYSTEMDICTIONARY_HPP |
25 #ifndef SHARE_VM_CLASSFILE_SYSTEMDICTIONARY_HPP |
26 #define SHARE_VM_CLASSFILE_SYSTEMDICTIONARY_HPP |
26 #define SHARE_VM_CLASSFILE_SYSTEMDICTIONARY_HPP |
27 |
27 |
28 #include "classfile/classFileStream.hpp" |
28 #include "classfile/classFileStream.hpp" |
29 #include "classfile/classLoader.hpp" |
29 #include "classfile/classLoader.hpp" |
|
30 #include "classfile/systemDictionary_ext.hpp" |
30 #include "oops/objArrayOop.hpp" |
31 #include "oops/objArrayOop.hpp" |
31 #include "oops/symbol.hpp" |
32 #include "oops/symbol.hpp" |
32 #include "runtime/java.hpp" |
33 #include "runtime/java.hpp" |
33 #include "runtime/reflectionUtils.hpp" |
34 #include "runtime/reflectionUtils.hpp" |
34 #include "utilities/hashtable.hpp" |
35 #include "utilities/hashtable.hpp" |
192 do_klass(Byte_klass, java_lang_Byte, Pre ) \ |
193 do_klass(Byte_klass, java_lang_Byte, Pre ) \ |
193 do_klass(Short_klass, java_lang_Short, Pre ) \ |
194 do_klass(Short_klass, java_lang_Short, Pre ) \ |
194 do_klass(Integer_klass, java_lang_Integer, Pre ) \ |
195 do_klass(Integer_klass, java_lang_Integer, Pre ) \ |
195 do_klass(Long_klass, java_lang_Long, Pre ) \ |
196 do_klass(Long_klass, java_lang_Long, Pre ) \ |
196 \ |
197 \ |
|
198 /* Extensions */ \ |
|
199 WK_KLASSES_DO_EXT(do_klass) \ |
197 /* JVMCI classes. These are loaded on-demand. */ \ |
200 /* JVMCI classes. These are loaded on-demand. */ \ |
198 JVMCI_WK_KLASSES_DO(do_klass) \ |
201 JVMCI_WK_KLASSES_DO(do_klass) \ |
199 |
202 \ |
200 /*end*/ |
203 /*end*/ |
201 |
204 |
202 |
205 |
203 class SystemDictionary : AllStatic { |
206 class SystemDictionary : AllStatic { |
204 friend class VMStructs; |
207 friend class VMStructs; |
205 friend class SystemDictionaryHandles; |
208 friend class SystemDictionaryHandles; |
|
209 friend class SharedClassUtil; |
206 |
210 |
207 public: |
211 public: |
208 enum WKID { |
212 enum WKID { |
209 NO_WKID = 0, |
213 NO_WKID = 0, |
210 |
214 |
665 static Klass* find_class(Symbol* class_name, ClassLoaderData* loader_data); |
669 static Klass* find_class(Symbol* class_name, ClassLoaderData* loader_data); |
666 |
670 |
667 // Basic find on classes in the midst of being loaded |
671 // Basic find on classes in the midst of being loaded |
668 static Symbol* find_placeholder(Symbol* name, ClassLoaderData* loader_data); |
672 static Symbol* find_placeholder(Symbol* name, ClassLoaderData* loader_data); |
669 |
673 |
670 // Updating entry in dictionary |
|
671 // Add a completely loaded class |
|
672 static void add_klass(int index, Symbol* class_name, |
|
673 ClassLoaderData* loader_data, KlassHandle obj); |
|
674 |
|
675 // Add a placeholder for a class being loaded |
674 // Add a placeholder for a class being loaded |
676 static void add_placeholder(int index, |
675 static void add_placeholder(int index, |
677 Symbol* class_name, |
676 Symbol* class_name, |
678 ClassLoaderData* loader_data); |
677 ClassLoaderData* loader_data); |
679 static void remove_placeholder(int index, |
678 static void remove_placeholder(int index, |