128
129 bool is_open() const { return _is_open; }
130 void set_is_open(bool is_open);
131
132 bool is_named() const { return (name() != NULL); }
133
134 bool can_read_all_unnamed() const {
135 assert(is_named() || _can_read_all_unnamed == true,
136 "unnamed modules can always read all unnamed modules");
137 return _can_read_all_unnamed;
138 }
139
140 // Modules can only go from strict to loose.
141 void set_can_read_all_unnamed() { _can_read_all_unnamed = true; }
142
143 bool has_default_read_edges() const {
144 return _has_default_read_edges;
145 }
146
147 // Sets true and returns the previous value.
148 bool set_has_default_read_edges() {
149 MutexLocker ml(Module_lock);
150 bool prev = _has_default_read_edges;
151 _has_default_read_edges = true;
152 return prev;
153 }
154
155 void set_is_patched() {
156 _is_patched = true;
157 }
158 bool is_patched() {
159 return _is_patched;
160 }
161
162 ModuleEntry* next() const {
163 return (ModuleEntry*)HashtableEntry<Symbol*, mtModule>::next();
164 }
165 ModuleEntry** next_addr() {
166 return (ModuleEntry**)HashtableEntry<Symbol*, mtModule>::next_addr();
167 }
168
169 // iteration support for readability
170 void module_reads_do(ModuleClosure* const f);
171
172 // Purge dead weak references out of reads list when any given class loader is unloaded.
173 void purge_reads();
|
128
129 bool is_open() const { return _is_open; }
130 void set_is_open(bool is_open);
131
132 bool is_named() const { return (name() != NULL); }
133
134 bool can_read_all_unnamed() const {
135 assert(is_named() || _can_read_all_unnamed == true,
136 "unnamed modules can always read all unnamed modules");
137 return _can_read_all_unnamed;
138 }
139
140 // Modules can only go from strict to loose.
141 void set_can_read_all_unnamed() { _can_read_all_unnamed = true; }
142
143 bool has_default_read_edges() const {
144 return _has_default_read_edges;
145 }
146
147 // Sets true and returns the previous value.
148 bool set_has_default_read_edges();
149
150 void set_is_patched() {
151 _is_patched = true;
152 }
153 bool is_patched() {
154 return _is_patched;
155 }
156
157 ModuleEntry* next() const {
158 return (ModuleEntry*)HashtableEntry<Symbol*, mtModule>::next();
159 }
160 ModuleEntry** next_addr() {
161 return (ModuleEntry**)HashtableEntry<Symbol*, mtModule>::next_addr();
162 }
163
164 // iteration support for readability
165 void module_reads_do(ModuleClosure* const f);
166
167 // Purge dead weak references out of reads list when any given class loader is unloaded.
168 void purge_reads();
|