< prev index next >

src/share/vm/classfile/moduleEntry.hpp

Print this page

        

*** 28,37 **** --- 28,38 ---- #include "classfile/classLoaderData.hpp" #include "classfile/vmSymbols.hpp" #include "oops/symbol.hpp" #include "prims/jni.h" #include "runtime/mutexLocker.hpp" + #include "runtime/orderAccess.hpp" #include "trace/traceMacros.hpp" #include "utilities/growableArray.hpp" #include "utilities/hashtable.hpp" #include "utilities/ostream.hpp"
*** 80,90 **** --- 81,94 ---- Symbol* name() const { return literal(); } void set_name(Symbol* n) { set_literal(n); } jobject module() const { return _module; } + jobject module_load_acquire() const { return (jobject)OrderAccess::load_ptr_acquire(&_module); } void set_module(jobject j) { _module = j; } + void set_module_release_store(jobject j) { OrderAccess::release_store_ptr(&_module, j); } + // The shared ProtectionDomain reference is set once the VM loads a shared class // originated from the current Module. The referenced ProtectionDomain object is // created by the ClassLoader when loading a class (shared or non-shared) from the // Module for the first time. This ProtectionDomain object is used for all
*** 218,231 **** // Special handling for unnamed module, one per class loader's ModuleEntryTable void create_unnamed_module(ClassLoaderData* loader_data); ModuleEntry* unnamed_module() { return _unnamed_module; } // Special handling for java.base ! static ModuleEntry* javabase_module() { return _javabase_module; } ! static void set_javabase_module(ModuleEntry* java_base) { _javabase_module = java_base; } ! static bool javabase_defined() { return ((_javabase_module != NULL) && ! (_javabase_module->module() != NULL)); } static void finalize_javabase(Handle module_handle, Symbol* version, Symbol* location); static void patch_javabase_entries(Handle module_handle); void print(outputStream* st = tty); void verify(); --- 222,237 ---- // Special handling for unnamed module, one per class loader's ModuleEntryTable void create_unnamed_module(ClassLoaderData* loader_data); ModuleEntry* unnamed_module() { return _unnamed_module; } // Special handling for java.base ! static ModuleEntry* javabase_moduleEntry() { return _javabase_module; } ! static void set_javabase_moduleEntry(ModuleEntry* java_base) { _javabase_module = java_base; } ! static bool javabase_defined() { ! ModuleEntry* jb = javabase_moduleEntry(); ! return ((jb != NULL) && (jb->module_load_acquire() != NULL)); ! } static void finalize_javabase(Handle module_handle, Symbol* version, Symbol* location); static void patch_javabase_entries(Handle module_handle); void print(outputStream* st = tty); void verify();
< prev index next >