< prev index next >
src/hotspot/share/classfile/systemDictionary.cpp
Print this page
*** 182,191 ****
--- 182,201 ----
vmSymbols::getPlatformClassLoader_name(),
vmSymbols::void_classloader_signature(),
CHECK);
_java_platform_loader = OopHandle(Universe::vm_global(), (oop)result.get_jobject());
+
+ #if INCLUDE_CDS_JAVA_HEAP
+ if (UseSharedSpaces && MetaspaceShared::use_full_module_graph()) {
+ Handle platform_loader(THREAD, java_platform_loader());
+ register_loader(platform_loader)->restore_java_platform_loader_from_archive();
+
+ Handle system_loader(THREAD, java_system_loader());
+ register_loader(system_loader)->restore_java_system_loader_from_archive();
+ }
+ #endif
}
ClassLoaderData* SystemDictionary::register_loader(Handle class_loader, bool create_mirror_cld) {
if (create_mirror_cld) {
// Add a new class loader data to the graph.
*** 2119,2128 ****
--- 2129,2139 ----
// SystemDictionary::Object_klass(), so we can do this only after
// Object_klass is resolved. See the above resolve_wk_klasses_through()
// call. No mirror objects are accessed/restored in the above call.
// Mirrors are restored after java.lang.Class is loaded.
HeapShared::fixup_mapped_heap_regions();
+ CDS_JAVA_HEAP_ONLY(ClassLoaderData::restore_archived_oops_for_null_class_loader_data());
// Initialize the constant pool for the Object_class
assert(Object_klass()->is_shared(), "must be");
Object_klass()->constants()->restore_unshareable_info(CHECK);
resolve_wk_klasses_through(WK_KLASS_ENUM_NAME(Class_klass), scan, CHECK);
< prev index next >