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