src/hotspot/share/classfile/systemDictionary.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/hotspot/share/classfile/systemDictionary.cpp	Wed Oct  4 21:34:26 2017
--- new/src/hotspot/share/classfile/systemDictionary.cpp	Wed Oct  4 21:34:25 2017

*** 102,111 **** --- 102,112 ---- = { NULL /*, NULL...*/ }; InstanceKlass* SystemDictionary::_box_klasses[T_VOID+1] = { NULL /*, NULL...*/ }; oop SystemDictionary::_java_system_loader = NULL; + oop SystemDictionary::_java_platform_loader = NULL; bool SystemDictionary::_has_loadClassInternal = false; bool SystemDictionary::_has_checkPackageAccess = false; // lazily initialized klass variables
*** 115,141 **** --- 116,154 ---- const int defaultProtectionDomainCacheSize = 1009; // ---------------------------------------------------------------------------- ! // Java-level SystemLoader and PlatformLoader oop SystemDictionary::java_system_loader() { return _java_system_loader; } ! void SystemDictionary::compute_java_system_loader(TRAPS) { ! Klass* system_klass = WK_KLASS(ClassLoader_klass); ! oop SystemDictionary::java_platform_loader() { ! return _java_platform_loader; + } + + void SystemDictionary::compute_java_loaders(TRAPS) { + Klass* class_loader_klass = WK_KLASS(ClassLoader_klass); JavaValue result(T_OBJECT); JavaCalls::call_static(&result, ! WK_KLASS(ClassLoader_klass), ! class_loader_klass, vmSymbols::getSystemClassLoader_name(), vmSymbols::void_classloader_signature(), CHECK); _java_system_loader = (oop)result.get_jobject(); + JavaCalls::call_static(&result, + class_loader_klass, + vmSymbols::getPlatformClassLoader_name(), + vmSymbols::void_classloader_signature(), + CHECK); + + _java_platform_loader = (oop)result.get_jobject(); + CDS_ONLY(SystemDictionaryShared::initialize(CHECK);) } ClassLoaderData* SystemDictionary::register_loader(Handle class_loader, TRAPS) {

src/hotspot/share/classfile/systemDictionary.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File