234 |
234 |
235 ModuleEntry* bucket(int i) { |
235 ModuleEntry* bucket(int i) { |
236 return (ModuleEntry*)Hashtable<Symbol*, mtModule>::bucket(i); |
236 return (ModuleEntry*)Hashtable<Symbol*, mtModule>::bucket(i); |
237 } |
237 } |
238 |
238 |
239 // Create module in loader's module entry table, if already exists then |
239 // Create module in loader's module entry table. Assume Module_lock |
240 // return null. Assume Module_lock has been locked by caller. |
240 // has been locked by caller. |
241 ModuleEntry* locked_create_entry_or_null(Handle module_handle, |
241 ModuleEntry* locked_create_entry(Handle module_handle, |
242 bool is_open, |
242 bool is_open, |
243 Symbol* module_name, |
243 Symbol* module_name, |
244 Symbol* module_version, |
244 Symbol* module_version, |
245 Symbol* module_location, |
245 Symbol* module_location, |
246 ClassLoaderData* loader_data); |
246 ClassLoaderData* loader_data); |
247 |
247 |
248 // Only lookup module within loader's module entry table. The table read is lock-free. |
248 // Only lookup module within loader's module entry table. The table read is lock-free. |
249 ModuleEntry* lookup_only(Symbol* name); |
249 ModuleEntry* lookup_only(Symbol* name); |
250 |
250 |
251 // purge dead weak references out of reads list |
251 // purge dead weak references out of reads list |
252 void purge_all_module_reads(); |
252 void purge_all_module_reads(); |
253 |
253 |
254 // Special handling for java.base |
254 // Special handling for java.base |
255 static ModuleEntry* javabase_moduleEntry() { return _javabase_module; } |
255 static ModuleEntry* javabase_moduleEntry() { return _javabase_module; } |
256 static void set_javabase_moduleEntry(ModuleEntry* java_base) { _javabase_module = java_base; } |
256 static void set_javabase_moduleEntry(ModuleEntry* java_base) { |
|
257 assert(_javabase_module == NULL, "_javabase_module is already defined"); |
|
258 _javabase_module = java_base; |
|
259 } |
257 |
260 |
258 static bool javabase_defined() { return ((_javabase_module != NULL) && |
261 static bool javabase_defined() { return ((_javabase_module != NULL) && |
259 (_javabase_module->module() != NULL)); } |
262 (_javabase_module->module() != NULL)); } |
260 static void finalize_javabase(Handle module_handle, Symbol* version, Symbol* location); |
263 static void finalize_javabase(Handle module_handle, Symbol* version, Symbol* location); |
261 static void patch_javabase_entries(Handle module_handle); |
264 static void patch_javabase_entries(Handle module_handle); |