equal
deleted
inserted
replaced
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; |