< prev index next >
src/share/vm/code/codeCache.cpp
Print this page
*** 744,765 ****
}
void CodeCache::gc_epilogue() {
assert_locked_or_safepoint(CodeCache_lock);
NMethodIterator iter;
! while(iter.next()) {
nmethod* nm = iter.method();
! if (!nm->is_zombie()) {
if (needs_cache_clean()) {
- // Clean ICs of unloaded nmethods as well because they may reference other
- // unloaded nmethods that may be flushed earlier in the sweeper cycle.
nm->cleanup_inline_caches();
}
DEBUG_ONLY(nm->verify());
DEBUG_ONLY(nm->verify_oop_relocations());
}
- }
set_needs_cache_clean(false);
prune_scavenge_root_nmethods();
verify_icholder_relocations();
}
--- 744,762 ----
}
void CodeCache::gc_epilogue() {
assert_locked_or_safepoint(CodeCache_lock);
NMethodIterator iter;
! while(iter.next_alive()) {
nmethod* nm = iter.method();
! assert(!nm->is_unloaded(), "Tautology");
if (needs_cache_clean()) {
nm->cleanup_inline_caches();
}
DEBUG_ONLY(nm->verify());
DEBUG_ONLY(nm->verify_oop_relocations());
}
set_needs_cache_clean(false);
prune_scavenge_root_nmethods();
verify_icholder_relocations();
}
< prev index next >