< 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 >