src/hotspot/share/classfile/packageEntry.cpp
changeset 53471 525f212f1bda
parent 53441 5c2c9555afc1
child 54623 1126f0607c70
equal deleted inserted replaced
53470:9459533ef916 53471:525f212f1bda
   209 void PackageEntryTable::add_entry(int index, PackageEntry* new_entry) {
   209 void PackageEntryTable::add_entry(int index, PackageEntry* new_entry) {
   210   assert(Module_lock->owned_by_self(), "should have the Module_lock");
   210   assert(Module_lock->owned_by_self(), "should have the Module_lock");
   211   Hashtable<Symbol*, mtModule>::add_entry(index, (HashtableEntry<Symbol*, mtModule>*)new_entry);
   211   Hashtable<Symbol*, mtModule>::add_entry(index, (HashtableEntry<Symbol*, mtModule>*)new_entry);
   212 }
   212 }
   213 
   213 
   214 // Create package in loader's package entry table and return the entry.
   214 // Create package entry in loader's package entry table.  Assume Module lock
   215 // If entry already exists, return null.  Assume Module lock was taken by caller.
   215 // was taken by caller.
   216 PackageEntry* PackageEntryTable::locked_create_entry_or_null(Symbol* name, ModuleEntry* module) {
   216 void PackageEntryTable::locked_create_entry(Symbol* name, ModuleEntry* module) {
   217   assert(Module_lock->owned_by_self(), "should have the Module_lock");
   217   assert(Module_lock->owned_by_self(), "should have the Module_lock");
   218   // Check if package already exists.  Return NULL if it does.
   218   assert(locked_lookup_only(name) == NULL, "Package entry already exists");
   219   if (locked_lookup_only(name) != NULL) {
   219   PackageEntry* entry = new_entry(compute_hash(name), name, module);
   220     return NULL;
   220   add_entry(index_for(name), entry);
   221   } else {
   221 }
   222     PackageEntry* entry = new_entry(compute_hash(name), name, module);
   222 
   223     add_entry(index_for(name), entry);
   223 // Create package entry in loader's package entry table if it does not already
   224     return entry;
   224 // exist.  Assume Module lock was taken by caller.
       
   225 void PackageEntryTable::locked_create_entry_if_not_exist(Symbol* name, ModuleEntry* module) {
       
   226   assert(Module_lock->owned_by_self(), "should have the Module_lock");
       
   227   // Check if package entry already exists.  If not, create it.
       
   228   if (locked_lookup_only(name) == NULL) {
       
   229     locked_create_entry(name, module);
   225   }
   230   }
   226 }
   231 }
   227 
   232 
   228 PackageEntry* PackageEntryTable::lookup(Symbol* name, ModuleEntry* module) {
   233 PackageEntry* PackageEntryTable::lookup(Symbol* name, ModuleEntry* module) {
   229   MutexLocker ml(Module_lock);
   234   MutexLocker ml(Module_lock);