src/hotspot/share/classfile/moduleEntry.cpp
changeset 52587 6cd56deebb0d
parent 51375 b812a85b3aa4
child 52631 3009ca99de32
equal deleted inserted replaced
52586:74109912c738 52587:6cd56deebb0d
   202   return ((_reads != NULL) && !_reads->is_empty());
   202   return ((_reads != NULL) && !_reads->is_empty());
   203 }
   203 }
   204 
   204 
   205 // Purge dead module entries out of reads list.
   205 // Purge dead module entries out of reads list.
   206 void ModuleEntry::purge_reads() {
   206 void ModuleEntry::purge_reads() {
   207   assert(SafepointSynchronize::is_at_safepoint(), "must be at safepoint");
   207   assert_locked_or_safepoint(Module_lock);
   208 
   208 
   209   if (_must_walk_reads && has_reads_list()) {
   209   if (_must_walk_reads && has_reads_list()) {
   210     // This module's _must_walk_reads flag will be reset based
   210     // This module's _must_walk_reads flag will be reset based
   211     // on the remaining live modules on the reads list.
   211     // on the remaining live modules on the reads list.
   212     _must_walk_reads = false;
   212     _must_walk_reads = false;
   243     }
   243     }
   244   }
   244   }
   245 }
   245 }
   246 
   246 
   247 void ModuleEntry::delete_reads() {
   247 void ModuleEntry::delete_reads() {
   248   assert(SafepointSynchronize::is_at_safepoint(), "must be at safepoint");
       
   249   delete _reads;
   248   delete _reads;
   250   _reads = NULL;
   249   _reads = NULL;
   251 }
   250 }
   252 
   251 
   253 ModuleEntry* ModuleEntry::create_unnamed_module(ClassLoaderData* cld) {
   252 ModuleEntry* ModuleEntry::create_unnamed_module(ClassLoaderData* cld) {
   317   : Hashtable<Symbol*, mtModule>(table_size, sizeof(ModuleEntry))
   316   : Hashtable<Symbol*, mtModule>(table_size, sizeof(ModuleEntry))
   318 {
   317 {
   319 }
   318 }
   320 
   319 
   321 ModuleEntryTable::~ModuleEntryTable() {
   320 ModuleEntryTable::~ModuleEntryTable() {
   322   assert_locked_or_safepoint(Module_lock);
       
   323 
       
   324   // Walk through all buckets and all entries in each bucket,
   321   // Walk through all buckets and all entries in each bucket,
   325   // freeing each entry.
   322   // freeing each entry.
   326   for (int i = 0; i < table_size(); ++i) {
   323   for (int i = 0; i < table_size(); ++i) {
   327     for (ModuleEntry* m = bucket(i); m != NULL;) {
   324     for (ModuleEntry* m = bucket(i); m != NULL;) {
   328       ModuleEntry* to_remove = m;
   325       ModuleEntry* to_remove = m;