92 // The order of these definitions is significant; it is the order in which |
92 // The order of these definitions is significant; it is the order in which |
93 // preloading is actually performed by initialize_preloaded_classes. |
93 // preloading is actually performed by initialize_preloaded_classes. |
94 |
94 |
95 #define WK_KLASSES_DO(do_klass) \ |
95 #define WK_KLASSES_DO(do_klass) \ |
96 /* well-known classes */ \ |
96 /* well-known classes */ \ |
97 do_klass(Object_klass, java_lang_Object, Pre_Link ) \ |
97 do_klass(Object_klass, java_lang_Object, Pre ) \ |
98 do_klass(String_klass, java_lang_String, Pre_Link ) \ |
98 do_klass(String_klass, java_lang_String, Pre ) \ |
99 do_klass(Class_klass, java_lang_Class, Pre_Link ) \ |
99 do_klass(Class_klass, java_lang_Class, Pre ) \ |
100 do_klass(Cloneable_klass, java_lang_Cloneable, Pre_Link ) \ |
100 do_klass(Cloneable_klass, java_lang_Cloneable, Pre ) \ |
101 do_klass(ClassLoader_klass, java_lang_ClassLoader, Pre_Link ) \ |
101 do_klass(ClassLoader_klass, java_lang_ClassLoader, Pre ) \ |
102 do_klass(Serializable_klass, java_io_Serializable, Pre_Link ) \ |
102 do_klass(Serializable_klass, java_io_Serializable, Pre ) \ |
103 do_klass(System_klass, java_lang_System, Pre_Link ) \ |
103 do_klass(System_klass, java_lang_System, Pre ) \ |
104 do_klass(Throwable_klass, java_lang_Throwable, Pre_Link ) \ |
104 do_klass(Throwable_klass, java_lang_Throwable, Pre ) \ |
105 do_klass(Error_klass, java_lang_Error, Pre_Link ) \ |
105 do_klass(Error_klass, java_lang_Error, Pre ) \ |
106 do_klass(ThreadDeath_klass, java_lang_ThreadDeath, Pre_Link ) \ |
106 do_klass(ThreadDeath_klass, java_lang_ThreadDeath, Pre ) \ |
107 do_klass(Exception_klass, java_lang_Exception, Pre_Link ) \ |
107 do_klass(Exception_klass, java_lang_Exception, Pre ) \ |
108 do_klass(RuntimeException_klass, java_lang_RuntimeException, Pre_Link ) \ |
108 do_klass(RuntimeException_klass, java_lang_RuntimeException, Pre ) \ |
109 do_klass(ProtectionDomain_klass, java_security_ProtectionDomain, Pre_Link ) \ |
109 do_klass(ProtectionDomain_klass, java_security_ProtectionDomain, Pre ) \ |
110 do_klass(AccessControlContext_klass, java_security_AccessControlContext, Pre_Link ) \ |
110 do_klass(AccessControlContext_klass, java_security_AccessControlContext, Pre ) \ |
111 do_klass(ClassNotFoundException_klass, java_lang_ClassNotFoundException, Pre_Link ) \ |
111 do_klass(ClassNotFoundException_klass, java_lang_ClassNotFoundException, Pre ) \ |
112 do_klass(NoClassDefFoundError_klass, java_lang_NoClassDefFoundError, Pre_Link ) \ |
112 do_klass(NoClassDefFoundError_klass, java_lang_NoClassDefFoundError, Pre ) \ |
113 do_klass(LinkageError_klass, java_lang_LinkageError, Pre_Link ) \ |
113 do_klass(LinkageError_klass, java_lang_LinkageError, Pre ) \ |
114 do_klass(ClassCastException_klass, java_lang_ClassCastException, Pre_Link ) \ |
114 do_klass(ClassCastException_klass, java_lang_ClassCastException, Pre ) \ |
115 do_klass(ArrayStoreException_klass, java_lang_ArrayStoreException, Pre_Link ) \ |
115 do_klass(ArrayStoreException_klass, java_lang_ArrayStoreException, Pre ) \ |
116 do_klass(VirtualMachineError_klass, java_lang_VirtualMachineError, Pre_Link ) \ |
116 do_klass(VirtualMachineError_klass, java_lang_VirtualMachineError, Pre ) \ |
117 do_klass(OutOfMemoryError_klass, java_lang_OutOfMemoryError, Pre_Link ) \ |
117 do_klass(OutOfMemoryError_klass, java_lang_OutOfMemoryError, Pre ) \ |
118 do_klass(StackOverflowError_klass, java_lang_StackOverflowError, Pre_Link ) \ |
118 do_klass(StackOverflowError_klass, java_lang_StackOverflowError, Pre ) \ |
119 do_klass(IllegalMonitorStateException_klass, java_lang_IllegalMonitorStateException, Pre_Link ) \ |
119 do_klass(IllegalMonitorStateException_klass, java_lang_IllegalMonitorStateException, Pre ) \ |
120 do_klass(Reference_klass, java_lang_ref_Reference, Pre_Link ) \ |
120 do_klass(Reference_klass, java_lang_ref_Reference, Pre ) \ |
121 \ |
121 \ |
122 /* Preload ref klasses and set reference types */ \ |
122 /* Preload ref klasses and set reference types */ \ |
123 do_klass(SoftReference_klass, java_lang_ref_SoftReference, Pre_Link ) \ |
123 do_klass(SoftReference_klass, java_lang_ref_SoftReference, Pre ) \ |
124 do_klass(WeakReference_klass, java_lang_ref_WeakReference, Pre_Link ) \ |
124 do_klass(WeakReference_klass, java_lang_ref_WeakReference, Pre ) \ |
125 do_klass(FinalReference_klass, java_lang_ref_FinalReference, Pre ) \ |
125 do_klass(FinalReference_klass, java_lang_ref_FinalReference, Pre ) \ |
126 do_klass(PhantomReference_klass, java_lang_ref_PhantomReference, Pre_Link ) \ |
126 do_klass(PhantomReference_klass, java_lang_ref_PhantomReference, Pre ) \ |
127 do_klass(Finalizer_klass, java_lang_ref_Finalizer, Pre ) \ |
127 do_klass(Finalizer_klass, java_lang_ref_Finalizer, Pre ) \ |
128 \ |
128 \ |
129 do_klass(Thread_klass, java_lang_Thread, Pre_Link ) \ |
129 do_klass(Thread_klass, java_lang_Thread, Pre ) \ |
130 do_klass(ThreadGroup_klass, java_lang_ThreadGroup, Pre_Link ) \ |
130 do_klass(ThreadGroup_klass, java_lang_ThreadGroup, Pre ) \ |
131 do_klass(Properties_klass, java_util_Properties, Pre_Link ) \ |
131 do_klass(Properties_klass, java_util_Properties, Pre ) \ |
132 do_klass(reflect_AccessibleObject_klass, java_lang_reflect_AccessibleObject, Pre_Link ) \ |
132 do_klass(reflect_AccessibleObject_klass, java_lang_reflect_AccessibleObject, Pre ) \ |
133 do_klass(reflect_Field_klass, java_lang_reflect_Field, Pre_Link ) \ |
133 do_klass(reflect_Field_klass, java_lang_reflect_Field, Pre ) \ |
134 do_klass(reflect_Method_klass, java_lang_reflect_Method, Pre_Link ) \ |
134 do_klass(reflect_Method_klass, java_lang_reflect_Method, Pre ) \ |
135 do_klass(reflect_Constructor_klass, java_lang_reflect_Constructor, Pre_Link ) \ |
135 do_klass(reflect_Constructor_klass, java_lang_reflect_Constructor, Pre ) \ |
136 \ |
136 \ |
137 /* NOTE: needed too early in bootstrapping process to have checks based on JDK version */ \ |
137 /* NOTE: needed too early in bootstrapping process to have checks based on JDK version */ \ |
138 /* Universe::is_gte_jdk14x_version() is not set up by this point. */ \ |
138 /* Universe::is_gte_jdk14x_version() is not set up by this point. */ \ |
139 /* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \ |
139 /* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \ |
140 do_klass(reflect_MagicAccessorImpl_klass, sun_reflect_MagicAccessorImpl, Opt ) \ |
140 do_klass(reflect_MagicAccessorImpl_klass, sun_reflect_MagicAccessorImpl, Opt ) \ |
143 do_klass(reflect_DelegatingClassLoader_klass, sun_reflect_DelegatingClassLoader, Opt ) \ |
143 do_klass(reflect_DelegatingClassLoader_klass, sun_reflect_DelegatingClassLoader, Opt ) \ |
144 do_klass(reflect_ConstantPool_klass, sun_reflect_ConstantPool, Opt_Only_JDK15 ) \ |
144 do_klass(reflect_ConstantPool_klass, sun_reflect_ConstantPool, Opt_Only_JDK15 ) \ |
145 do_klass(reflect_UnsafeStaticFieldAccessorImpl_klass, sun_reflect_UnsafeStaticFieldAccessorImpl, Opt_Only_JDK15 ) \ |
145 do_klass(reflect_UnsafeStaticFieldAccessorImpl_klass, sun_reflect_UnsafeStaticFieldAccessorImpl, Opt_Only_JDK15 ) \ |
146 \ |
146 \ |
147 /* support for dynamic typing; it's OK if these are NULL in earlier JDKs */ \ |
147 /* support for dynamic typing; it's OK if these are NULL in earlier JDKs */ \ |
148 do_klass(MethodHandle_klass, java_lang_invoke_MethodHandle, Pre_Link ) \ |
148 do_klass(MethodHandle_klass, java_lang_invoke_MethodHandle, Pre_JSR292 ) \ |
149 do_klass(MemberName_klass, java_lang_invoke_MemberName, Pre ) \ |
149 do_klass(MemberName_klass, java_lang_invoke_MemberName, Pre_JSR292 ) \ |
150 do_klass(MethodHandleNatives_klass, java_lang_invoke_MethodHandleNatives, Pre ) \ |
150 do_klass(MethodHandleNatives_klass, java_lang_invoke_MethodHandleNatives, Pre_JSR292 ) \ |
151 do_klass(LambdaForm_klass, java_lang_invoke_LambdaForm, Opt ) \ |
151 do_klass(LambdaForm_klass, java_lang_invoke_LambdaForm, Opt ) \ |
152 do_klass(MethodType_klass, java_lang_invoke_MethodType, Pre_Link ) \ |
152 do_klass(MethodType_klass, java_lang_invoke_MethodType, Pre_JSR292 ) \ |
153 do_klass(BootstrapMethodError_klass, java_lang_BootstrapMethodError, Pre_Link ) \ |
153 do_klass(BootstrapMethodError_klass, java_lang_BootstrapMethodError, Pre_JSR292 ) \ |
154 do_klass(CallSite_klass, java_lang_invoke_CallSite, Pre_Link ) \ |
154 do_klass(CallSite_klass, java_lang_invoke_CallSite, Pre_JSR292 ) \ |
155 do_klass(ConstantCallSite_klass, java_lang_invoke_ConstantCallSite, Pre_Link ) \ |
155 do_klass(ConstantCallSite_klass, java_lang_invoke_ConstantCallSite, Pre_JSR292 ) \ |
156 do_klass(MutableCallSite_klass, java_lang_invoke_MutableCallSite, Pre_Link ) \ |
156 do_klass(MutableCallSite_klass, java_lang_invoke_MutableCallSite, Pre_JSR292 ) \ |
157 do_klass(VolatileCallSite_klass, java_lang_invoke_VolatileCallSite, Pre_Link ) \ |
157 do_klass(VolatileCallSite_klass, java_lang_invoke_VolatileCallSite, Pre_JSR292 ) \ |
158 /* Note: MethodHandle must be first, and VolatileCallSite last in group */ \ |
158 /* Note: MethodHandle must be first, and VolatileCallSite last in group */ \ |
159 \ |
159 \ |
160 do_klass(StringBuffer_klass, java_lang_StringBuffer, Pre_Link ) \ |
160 do_klass(StringBuffer_klass, java_lang_StringBuffer, Pre ) \ |
161 do_klass(StringBuilder_klass, java_lang_StringBuilder, Pre_Link ) \ |
161 do_klass(StringBuilder_klass, java_lang_StringBuilder, Pre ) \ |
162 \ |
162 \ |
163 /* It's NULL in non-1.4 JDKs. */ \ |
163 /* It's NULL in non-1.4 JDKs. */ \ |
164 do_klass(StackTraceElement_klass, java_lang_StackTraceElement, Opt ) \ |
164 do_klass(StackTraceElement_klass, java_lang_StackTraceElement, Opt ) \ |
165 /* Universe::is_gte_jdk14x_version() is not set up by this point. */ \ |
165 /* Universe::is_gte_jdk14x_version() is not set up by this point. */ \ |
166 /* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \ |
166 /* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \ |
169 do_klass(DownloadManager_klass, sun_jkernel_DownloadManager, Opt_Kernel ) \ |
169 do_klass(DownloadManager_klass, sun_jkernel_DownloadManager, Opt_Kernel ) \ |
170 \ |
170 \ |
171 do_klass(PostVMInitHook_klass, sun_misc_PostVMInitHook, Opt ) \ |
171 do_klass(PostVMInitHook_klass, sun_misc_PostVMInitHook, Opt ) \ |
172 \ |
172 \ |
173 /* Preload boxing klasses */ \ |
173 /* Preload boxing klasses */ \ |
174 do_klass(Boolean_klass, java_lang_Boolean, Pre_Link ) \ |
174 do_klass(Boolean_klass, java_lang_Boolean, Pre ) \ |
175 do_klass(Character_klass, java_lang_Character, Pre_Link ) \ |
175 do_klass(Character_klass, java_lang_Character, Pre ) \ |
176 do_klass(Float_klass, java_lang_Float, Pre_Link ) \ |
176 do_klass(Float_klass, java_lang_Float, Pre ) \ |
177 do_klass(Double_klass, java_lang_Double, Pre_Link ) \ |
177 do_klass(Double_klass, java_lang_Double, Pre ) \ |
178 do_klass(Byte_klass, java_lang_Byte, Pre_Link ) \ |
178 do_klass(Byte_klass, java_lang_Byte, Pre ) \ |
179 do_klass(Short_klass, java_lang_Short, Pre_Link ) \ |
179 do_klass(Short_klass, java_lang_Short, Pre ) \ |
180 do_klass(Integer_klass, java_lang_Integer, Pre_Link ) \ |
180 do_klass(Integer_klass, java_lang_Integer, Pre ) \ |
181 do_klass(Long_klass, java_lang_Long, Pre_Link ) \ |
181 do_klass(Long_klass, java_lang_Long, Pre ) \ |
182 /*end*/ |
182 /*end*/ |
183 |
183 |
184 |
184 |
185 class SystemDictionary : AllStatic { |
185 class SystemDictionary : AllStatic { |
186 friend class VMStructs; |
186 friend class VMStructs; |