< 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 >