< prev index next >

src/hotspot/share/classfile/modules.cpp

Print this page

*** 25,34 **** --- 25,35 ---- #include "precompiled.hpp" #include "jvm.h" #include "classfile/classFileParser.hpp" #include "classfile/classLoader.hpp" #include "classfile/classLoaderData.inline.hpp" + #include "classfile/classLoaderDataShared.hpp" #include "classfile/javaAssertions.hpp" #include "classfile/javaClasses.hpp" #include "classfile/javaClasses.inline.hpp" #include "classfile/moduleEntry.hpp" #include "classfile/modules.hpp"
*** 37,46 **** --- 38,48 ---- #include "classfile/symbolTable.hpp" #include "classfile/systemDictionary.hpp" #include "classfile/vmSymbols.hpp" #include "logging/log.hpp" #include "logging/logStream.hpp" + #include "memory/metaspaceShared.hpp" #include "memory/resourceArea.hpp" #include "runtime/handles.inline.hpp" #include "runtime/javaCalls.hpp" #include "runtime/jniHandles.inline.hpp" #include "utilities/stringUtils.hpp"
*** 448,457 **** --- 450,481 ---- if (h_loader.is_null() && !ClassLoader::has_jrt_entry()) { ClassLoader::add_to_exploded_build_list(module_symbol, CHECK); } } + #if INCLUDE_CDS_JAVA_HEAP + void Modules::define_archived_modules(jobject platform_loader, jobject system_loader, TRAPS) { + if (platform_loader == NULL) { + THROW_MSG(vmSymbols::java_lang_NullPointerException(), "Null platform loader object"); + } + + if (system_loader == NULL) { + THROW_MSG(vmSymbols::java_lang_NullPointerException(), "Null system loader object"); + } + + if (UseSharedSpaces && MetaspaceShared::use_full_module_graph()) { + Handle h_platform_loader(THREAD, JNIHandles::resolve_non_null(platform_loader)); + ClassLoaderData* platform_loader_data = SystemDictionary::register_loader(h_platform_loader); + ClassLoaderDataShared::restore_java_platform_loader_from_archive(platform_loader_data); + + Handle h_system_loader(THREAD, JNIHandles::resolve_non_null(system_loader)); + ClassLoaderData* system_loader_data = SystemDictionary::register_loader(h_system_loader); + ClassLoaderDataShared::restore_java_system_loader_from_archive(system_loader_data); + } + } + #endif + void Modules::set_bootloader_unnamed_module(jobject module, TRAPS) { ResourceMark rm(THREAD); if (module == NULL) { THROW_MSG(vmSymbols::java_lang_NullPointerException(), "Null module object");
< prev index next >