src/share/vm/classfile/moduleEntry.hpp
Print this page
@@ -53,10 +53,11 @@
ClassLoaderData* _loader;
GrowableArray<ModuleEntry*>* _reads; // list of modules that are readable by this module
Symbol* _version; // module version number
Symbol* _location; // module location
bool _can_read_unnamed;
+ bool _has_default_read_edges; // JVMTI redefine/retransform support
TRACE_DEFINE_TRACE_ID_FIELD;
public:
void init() {
_jlrM = NULL;
@@ -63,10 +64,11 @@
_loader = NULL;
_reads = NULL;
_version = NULL;
_location = NULL;
_can_read_unnamed = false;
+ _has_default_read_edges = false;
}
Symbol* name() const { return literal(); }
void set_name(Symbol* n) { set_literal(n); }
@@ -95,10 +97,22 @@
}
// Modules can only go from strict to loose.
void set_can_read_unnamed() { _can_read_unnamed = true; }
+ bool has_default_read_edges() const {
+ return _has_default_read_edges;
+ }
+
+ // Sets true and returns the previous value.
+ bool set_has_default_read_edges() {
+ MutexLocker ml(Module_lock);
+ bool prev = _has_default_read_edges;
+ _has_default_read_edges = true;
+ return prev;
+ }
+
ModuleEntry* next() const {
return (ModuleEntry*)HashtableEntry<Symbol*, mtClass>::next();
}
ModuleEntry** next_addr() {
return (ModuleEntry**)HashtableEntry<Symbol*, mtClass>::next_addr();