< prev index next >

src/hotspot/share/gc/shared/weakProcessor.cpp

Print this page
rev 53522 : imported patch 8213229-kbarrett-review
rev 53524 : imported patch 8217778-stringtable-wrong-dead-count

*** 34,52 **** #include "runtime/globals.hpp" #include "utilities/macros.hpp" void WeakProcessor::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* keep_alive) { StringTable::reset_dead_counter(); - CountingIsAliveClosure<BoolObjectClosure> cl(is_alive); FOR_EACH_WEAK_PROCESSOR_PHASE(phase) { if (WeakProcessorPhases::is_serial(phase)) { WeakProcessorPhases::processor(phase)(&cl, keep_alive); } else { ! WeakProcessorPhases::oop_storage(phase)->weak_oops_do(&cl, keep_alive); ! } if (WeakProcessorPhases::is_stringtable(phase)) { ! StringTable::inc_dead_counter(cl.num_dead()); } } StringTable::finish_dead_counter(); } --- 34,53 ---- #include "runtime/globals.hpp" #include "utilities/macros.hpp" void WeakProcessor::weak_oops_do(BoolObjectClosure* is_alive, OopClosure* keep_alive) { StringTable::reset_dead_counter(); FOR_EACH_WEAK_PROCESSOR_PHASE(phase) { if (WeakProcessorPhases::is_serial(phase)) { + CountingIsAliveClosure<BoolObjectClosure> cl(is_alive); WeakProcessorPhases::processor(phase)(&cl, keep_alive); } else { ! CountingSkippedIsAliveClosure<BoolObjectClosure, OopClosure> cl(is_alive, keep_alive); ! WeakProcessorPhases::oop_storage(phase)->oops_do(&cl); if (WeakProcessorPhases::is_stringtable(phase)) { ! StringTable::inc_dead_counter(cl.num_dead() + cl.num_skipped()); ! } } } StringTable::finish_dead_counter(); }
< prev index next >