170 do_klass(Context_klass, java_lang_invoke_MethodHandleNatives_CallSiteContext, Pre ) \ 171 do_klass(ConstantCallSite_klass, java_lang_invoke_ConstantCallSite, Pre ) \ 172 do_klass(MutableCallSite_klass, java_lang_invoke_MutableCallSite, Pre ) \ 173 do_klass(VolatileCallSite_klass, java_lang_invoke_VolatileCallSite, Pre ) \ 174 /* Note: MethodHandle must be first, and VolatileCallSite last in group */ \ 175 \ 176 do_klass(AssertionStatusDirectives_klass, java_lang_AssertionStatusDirectives, Pre ) \ 177 do_klass(StringBuffer_klass, java_lang_StringBuffer, Pre ) \ 178 do_klass(StringBuilder_klass, java_lang_StringBuilder, Pre ) \ 179 do_klass(internal_Unsafe_klass, jdk_internal_misc_Unsafe, Pre ) \ 180 do_klass(module_Modules_klass, jdk_internal_module_Modules, Pre ) \ 181 \ 182 /* support for CDS */ \ 183 do_klass(ByteArrayInputStream_klass, java_io_ByteArrayInputStream, Pre ) \ 184 do_klass(URL_klass, java_net_URL, Pre ) \ 185 do_klass(Jar_Manifest_klass, java_util_jar_Manifest, Pre ) \ 186 do_klass(jdk_internal_loader_ClassLoaders_klass, jdk_internal_loader_ClassLoaders, Pre ) \ 187 do_klass(jdk_internal_loader_ClassLoaders_AppClassLoader_klass, jdk_internal_loader_ClassLoaders_AppClassLoader, Pre ) \ 188 do_klass(jdk_internal_loader_ClassLoaders_PlatformClassLoader_klass, jdk_internal_loader_ClassLoaders_PlatformClassLoader, Pre ) \ 189 do_klass(CodeSource_klass, java_security_CodeSource, Pre ) \ 190 do_klass(Configuration_klass, java_lang_module_Configuration, Pre ) \ 191 do_klass(ImmutableCollections_ListN_klass, java_util_ImmutableCollections_ListN, Pre ) \ 192 do_klass(ImmutableCollections_MapN_klass, java_util_ImmutableCollections_MapN, Pre ) \ 193 do_klass(ImmutableCollections_SetN_klass, java_util_ImmutableCollections_SetN, Pre ) \ 194 do_klass(ArchivedModuleGraph_klass, jdk_internal_module_ArchivedModuleGraph, Pre ) \ 195 \ 196 do_klass(StackTraceElement_klass, java_lang_StackTraceElement, Opt ) \ 197 \ 198 /* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \ 199 do_klass(nio_Buffer_klass, java_nio_Buffer, Opt ) \ 200 \ 201 /* Stack Walking */ \ 202 do_klass(StackWalker_klass, java_lang_StackWalker, Opt ) \ 203 do_klass(AbstractStackWalker_klass, java_lang_StackStreamFactory_AbstractStackWalker, Opt ) \ 204 do_klass(StackFrameInfo_klass, java_lang_StackFrameInfo, Opt ) \ 205 do_klass(LiveStackFrameInfo_klass, java_lang_LiveStackFrameInfo, Opt ) \ 206 \ 207 /* support for stack dump lock analysis */ \ 208 do_klass(java_util_concurrent_locks_AbstractOwnableSynchronizer_klass, java_util_concurrent_locks_AbstractOwnableSynchronizer, Pre ) \ 209 \ 210 /* Preload boxing klasses */ \ 211 do_klass(Boolean_klass, java_lang_Boolean, Pre ) \ 212 do_klass(Character_klass, java_lang_Character, Pre ) \ 213 do_klass(Float_klass, java_lang_Float, Pre ) \ 214 do_klass(Double_klass, java_lang_Double, Pre ) \ 215 do_klass(Byte_klass, java_lang_Byte, Pre ) \ 216 do_klass(Short_klass, java_lang_Short, Pre ) \ 217 do_klass(Integer_klass, java_lang_Integer, Pre ) \ 218 do_klass(Integer_IntegerCache_klass, java_lang_Integer_IntegerCache, Pre ) \ 219 do_klass(Long_klass, java_lang_Long, Pre ) \ 220 \ 221 /* JVMCI classes. These are loaded on-demand. */ \ 222 JVMCI_WK_KLASSES_DO(do_klass) \ 223 \ 224 /*end*/ 225 226 227 class SystemDictionary : AllStatic { 228 friend class VMStructs; 229 friend class SystemDictionaryHandles; 230 231 public: 232 enum WKID { 233 NO_WKID = 0, 234 235 #define WK_KLASS_ENUM(name, symbol, ignore_o) WK_KLASS_ENUM_NAME(name), WK_KLASS_ENUM_NAME(symbol) = WK_KLASS_ENUM_NAME(name), 236 WK_KLASSES_DO(WK_KLASS_ENUM) 237 #undef WK_KLASS_ENUM 238 | 170 do_klass(Context_klass, java_lang_invoke_MethodHandleNatives_CallSiteContext, Pre ) \ 171 do_klass(ConstantCallSite_klass, java_lang_invoke_ConstantCallSite, Pre ) \ 172 do_klass(MutableCallSite_klass, java_lang_invoke_MutableCallSite, Pre ) \ 173 do_klass(VolatileCallSite_klass, java_lang_invoke_VolatileCallSite, Pre ) \ 174 /* Note: MethodHandle must be first, and VolatileCallSite last in group */ \ 175 \ 176 do_klass(AssertionStatusDirectives_klass, java_lang_AssertionStatusDirectives, Pre ) \ 177 do_klass(StringBuffer_klass, java_lang_StringBuffer, Pre ) \ 178 do_klass(StringBuilder_klass, java_lang_StringBuilder, Pre ) \ 179 do_klass(internal_Unsafe_klass, jdk_internal_misc_Unsafe, Pre ) \ 180 do_klass(module_Modules_klass, jdk_internal_module_Modules, Pre ) \ 181 \ 182 /* support for CDS */ \ 183 do_klass(ByteArrayInputStream_klass, java_io_ByteArrayInputStream, Pre ) \ 184 do_klass(URL_klass, java_net_URL, Pre ) \ 185 do_klass(Jar_Manifest_klass, java_util_jar_Manifest, Pre ) \ 186 do_klass(jdk_internal_loader_ClassLoaders_klass, jdk_internal_loader_ClassLoaders, Pre ) \ 187 do_klass(jdk_internal_loader_ClassLoaders_AppClassLoader_klass, jdk_internal_loader_ClassLoaders_AppClassLoader, Pre ) \ 188 do_klass(jdk_internal_loader_ClassLoaders_PlatformClassLoader_klass, jdk_internal_loader_ClassLoaders_PlatformClassLoader, Pre ) \ 189 do_klass(CodeSource_klass, java_security_CodeSource, Pre ) \ 190 \ 191 do_klass(StackTraceElement_klass, java_lang_StackTraceElement, Opt ) \ 192 \ 193 /* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \ 194 do_klass(nio_Buffer_klass, java_nio_Buffer, Opt ) \ 195 \ 196 /* Stack Walking */ \ 197 do_klass(StackWalker_klass, java_lang_StackWalker, Opt ) \ 198 do_klass(AbstractStackWalker_klass, java_lang_StackStreamFactory_AbstractStackWalker, Opt ) \ 199 do_klass(StackFrameInfo_klass, java_lang_StackFrameInfo, Opt ) \ 200 do_klass(LiveStackFrameInfo_klass, java_lang_LiveStackFrameInfo, Opt ) \ 201 \ 202 /* support for stack dump lock analysis */ \ 203 do_klass(java_util_concurrent_locks_AbstractOwnableSynchronizer_klass, java_util_concurrent_locks_AbstractOwnableSynchronizer, Pre ) \ 204 \ 205 /* Preload boxing klasses */ \ 206 do_klass(Boolean_klass, java_lang_Boolean, Pre ) \ 207 do_klass(Character_klass, java_lang_Character, Pre ) \ 208 do_klass(Float_klass, java_lang_Float, Pre ) \ 209 do_klass(Double_klass, java_lang_Double, Pre ) \ 210 do_klass(Byte_klass, java_lang_Byte, Pre ) \ 211 do_klass(Short_klass, java_lang_Short, Pre ) \ 212 do_klass(Integer_klass, java_lang_Integer, Pre ) \ 213 do_klass(Long_klass, java_lang_Long, Pre ) \ 214 \ 215 /* JVMCI classes. These are loaded on-demand. */ \ 216 JVMCI_WK_KLASSES_DO(do_klass) \ 217 \ 218 /*end*/ 219 220 221 class SystemDictionary : AllStatic { 222 friend class VMStructs; 223 friend class SystemDictionaryHandles; 224 225 public: 226 enum WKID { 227 NO_WKID = 0, 228 229 #define WK_KLASS_ENUM(name, symbol, ignore_o) WK_KLASS_ENUM_NAME(name), WK_KLASS_ENUM_NAME(symbol) = WK_KLASS_ENUM_NAME(name), 230 WK_KLASSES_DO(WK_KLASS_ENUM) 231 #undef WK_KLASS_ENUM 232 |