< prev index next >
src/share/vm/runtime/sweeper.cpp
Print this page
*** 643,652 ****
--- 643,658 ----
// No inline caches will ever point to osr methods, so we can just remove it
release_nmethod(nm);
assert(result == None, "sanity");
result = Flushed;
} else {
+ {
+ // Clean ICs of unloaded nmethods as well because they may reference other
+ // unloaded nmethods that may be flushed earlier in the sweeper cycle.
+ MutexLocker cl(CompiledIC_lock);
+ nm->cleanup_inline_caches();
+ }
// Code cache state change is tracked in make_zombie()
nm->make_zombie();
SWEEP(nm);
assert(result == None, "sanity");
result = MadeZombie;
< prev index next >