236 }
237
238 static unsigned int compute_hash(Symbol* name) { return (unsigned int)(name->identity_hash()); }
239 int index_for(Symbol* name) const { return hash_to_index(compute_hash(name)); }
240
241 public:
242 PackageEntryTable(int table_size);
243 ~PackageEntryTable();
244
245 PackageEntry* bucket(int i) {
246 return (PackageEntry*)Hashtable<Symbol*, mtModule>::bucket(i);
247 }
248
249 // Create package in loader's package entry table and return the entry.
250 // If entry already exists, return null. Assume Module lock was taken by caller.
251 PackageEntry* locked_create_entry_or_null(Symbol* name, ModuleEntry* module);
252
253 // lookup Package with loader's package entry table, if not found add
254 PackageEntry* lookup(Symbol* name, ModuleEntry* module);
255
256 // Only lookup Package within loader's package entry table. The table read is lock-free.
257 PackageEntry* lookup_only(Symbol* Package);
258
259 void verify_javabase_packages(GrowableArray<Symbol*> *pkg_list);
260
261 // purge dead weak references out of exported list
262 void purge_all_package_exports();
263
264 void print(outputStream* st = tty);
265 void verify();
266 };
267
268 #endif // SHARE_VM_CLASSFILE_PACKAGEENTRY_HPP
|
236 }
237
238 static unsigned int compute_hash(Symbol* name) { return (unsigned int)(name->identity_hash()); }
239 int index_for(Symbol* name) const { return hash_to_index(compute_hash(name)); }
240
241 public:
242 PackageEntryTable(int table_size);
243 ~PackageEntryTable();
244
245 PackageEntry* bucket(int i) {
246 return (PackageEntry*)Hashtable<Symbol*, mtModule>::bucket(i);
247 }
248
249 // Create package in loader's package entry table and return the entry.
250 // If entry already exists, return null. Assume Module lock was taken by caller.
251 PackageEntry* locked_create_entry_or_null(Symbol* name, ModuleEntry* module);
252
253 // lookup Package with loader's package entry table, if not found add
254 PackageEntry* lookup(Symbol* name, ModuleEntry* module);
255
256 // Only lookup Package within loader's package entry table.
257 PackageEntry* lookup_only(Symbol* Package);
258
259 void verify_javabase_packages(GrowableArray<Symbol*> *pkg_list);
260
261 // purge dead weak references out of exported list
262 void purge_all_package_exports();
263
264 void print(outputStream* st = tty);
265 void verify();
266 };
267
268 #endif // SHARE_VM_CLASSFILE_PACKAGEENTRY_HPP
|