--- old/src/hotspot/share/gc/parallel/psMarkSweep.cpp 2018-05-08 09:41:04.513319249 +0200 +++ new/src/hotspot/share/gc/parallel/psMarkSweep.cpp 2018-05-08 09:41:04.227310412 +0200 @@ -65,9 +65,11 @@ jlong PSMarkSweep::_time_of_last_gc = 0; CollectorCounters* PSMarkSweep::_counters = NULL; +SpanSubjectToDiscoveryClosure PSMarkSweep::_span_discoverer; + void PSMarkSweep::initialize() { - MemRegion mr = ParallelScavengeHeap::heap()->reserved_region(); - set_ref_processor(new SpanReferenceProcessor(mr)); // a vanilla ref proc + _span_discoverer.set_span(ParallelScavengeHeap::heap()->reserved_region()); + set_ref_processor(new ReferenceProcessor(&_span_discoverer)); // a vanilla ref proc _counters = new CollectorCounters("PSMarkSweep", 1); }