src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
Print this page
@@ -3118,11 +3118,11 @@
ClassLoaderDataGraph::clear_claimed_marks();
// Mark from roots one level into CMS
MarkRefsIntoVerifyClosure notOlder(_span, verification_mark_bm(),
markBitMap());
- CMKlassClosure klass_closure(¬Older);
+ KlassToOopClosure klass_closure(¬Older);
gch->rem_set()->prepare_for_younger_refs_iterate(false); // Not parallel.
gch->gen_process_strong_roots(_cmsGen->level(),
true, // younger gens are roots
true, // activate StrongRootsScope
@@ -3738,11 +3738,11 @@
tsk.work(0);
}
gch->set_par_threads(0);
} else {
// The serial version.
- CMKlassClosure klass_closure(¬Older);
+ KlassToOopClosure klass_closure(¬Older);
gch->rem_set()->prepare_for_younger_refs_iterate(false); // Not parallel.
gch->gen_process_strong_roots(_cmsGen->level(),
true, // younger gens are roots
true, // activate StrongRootsScope
SharedHeap::ScanningOption(roots_scanning_options()),
@@ -4200,11 +4200,11 @@
// have been bumped up by the thread that claimed the last
// task.
pst->all_tasks_completed();
}
-class Par_ConcMarkingClosure: public CMSOopClosure {
+class Par_ConcMarkingClosure: public MetadataAwareOopClosure {
private:
CMSCollector* _collector;
CMSConcMarkingTask* _task;
MemRegion _span;
CMSBitMap* _bit_map;
@@ -4213,11 +4213,11 @@
protected:
DO_OOP_WORK_DEFN
public:
Par_ConcMarkingClosure(CMSCollector* collector, CMSConcMarkingTask* task, OopTaskQueue* work_queue,
CMSBitMap* bit_map, CMSMarkStack* overflow_stack):
- CMSOopClosure(collector->ref_processor()),
+ MetadataAwareOopClosure(collector->ref_processor()),
_collector(collector),
_task(task),
_span(collector->_span),
_work_queue(work_queue),
_bit_map(bit_map),
@@ -4984,11 +4984,11 @@
verify_overflow_empty();
return cumNumDirtyCards;
}
class PrecleanKlassClosure : public KlassClosure {
- CMKlassClosure _cm_klass_closure;
+ KlassToOopClosure _cm_klass_closure;
public:
PrecleanKlassClosure(OopClosure* oop_closure) : _cm_klass_closure(oop_closure) {}
void do_klass(Klass* k) {
if (k->has_accumulated_modified_oops()) {
k->clear_accumulated_modified_oops();
@@ -5222,11 +5222,11 @@
// ---------- scan from roots --------------
_timer.start();
GenCollectedHeap* gch = GenCollectedHeap::heap();
Par_MarkRefsIntoClosure par_mri_cl(_collector->_span, &(_collector->_markBitMap));
- CMKlassClosure klass_closure(&par_mri_cl);
+ KlassToOopClosure klass_closure(&par_mri_cl);
// ---------- young gen roots --------------
{
work_on_young_gen_roots(worker_id, &par_mri_cl);
_timer.stop();
@@ -5296,11 +5296,11 @@
// ... work stealing for the above
void do_work_steal(int i, Par_MarkRefsIntoAndScanClosure* cl, int* seed);
};
class RemarkKlassClosure : public KlassClosure {
- CMKlassClosure _cm_klass_closure;
+ KlassToOopClosure _cm_klass_closure;
public:
RemarkKlassClosure(OopClosure* oop_closure) : _cm_klass_closure(oop_closure) {}
void do_klass(Klass* k) {
// Check if we have modified any oops in the Klass during the concurrent marking.
if (k->has_accumulated_modified_oops()) {
@@ -7733,11 +7733,11 @@
PushAndMarkVerifyClosure::PushAndMarkVerifyClosure(
CMSCollector* collector, MemRegion span,
CMSBitMap* verification_bm, CMSBitMap* cms_bm,
CMSMarkStack* mark_stack):
- CMSOopClosure(collector->ref_processor()),
+ MetadataAwareOopClosure(collector->ref_processor()),
_collector(collector),
_span(span),
_verification_bm(verification_bm),
_cms_bm(cms_bm),
_mark_stack(mark_stack)
@@ -7786,11 +7786,11 @@
PushOrMarkClosure::PushOrMarkClosure(CMSCollector* collector,
MemRegion span,
CMSBitMap* bitMap, CMSMarkStack* markStack,
HeapWord* finger, MarkFromRootsClosure* parent) :
- CMSOopClosure(collector->ref_processor()),
+ MetadataAwareOopClosure(collector->ref_processor()),
_collector(collector),
_span(span),
_bitMap(bitMap),
_markStack(markStack),
_finger(finger),
@@ -7803,11 +7803,11 @@
OopTaskQueue* work_queue,
CMSMarkStack* overflow_stack,
HeapWord* finger,
HeapWord** global_finger_addr,
Par_MarkFromRootsClosure* parent) :
- CMSOopClosure(collector->ref_processor()),
+ MetadataAwareOopClosure(collector->ref_processor()),
_collector(collector),
_whole_span(collector->_span),
_span(span),
_bit_map(bit_map),
_work_queue(work_queue),
@@ -7852,15 +7852,10 @@
_collector->lower_restart_addr(ra);
_overflow_stack->reset(); // discard stack contents
_overflow_stack->expand(); // expand the stack if possible
}
-void CMKlassClosure::do_klass(Klass* k) {
- assert(_oop_closure != NULL, "Not initialized?");
- k->oops_do(_oop_closure);
-}
-
void PushOrMarkClosure::do_oop(oop obj) {
// Ignore mark word because we are running concurrent with mutators.
assert(obj->is_oop_or_null(true), "expected an oop or NULL");
HeapWord* addr = (HeapWord*)obj;
if (_span.contains(addr) && !_bitMap->isMarked(addr)) {
@@ -7954,11 +7949,11 @@
ReferenceProcessor* rp,
CMSBitMap* bit_map,
CMSBitMap* mod_union_table,
CMSMarkStack* mark_stack,
bool concurrent_precleaning):
- CMSOopClosure(rp),
+ MetadataAwareOopClosure(rp),
_collector(collector),
_span(span),
_bit_map(bit_map),
_mod_union_table(mod_union_table),
_mark_stack(mark_stack),
@@ -8027,11 +8022,11 @@
Par_PushAndMarkClosure::Par_PushAndMarkClosure(CMSCollector* collector,
MemRegion span,
ReferenceProcessor* rp,
CMSBitMap* bit_map,
OopTaskQueue* work_queue):
- CMSOopClosure(rp),
+ MetadataAwareOopClosure(rp),
_collector(collector),
_span(span),
_bit_map(bit_map),
_work_queue(work_queue)
{