--- old/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.hpp 2018-05-08 09:41:30.418119681 +0200 +++ new/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.hpp 2018-05-08 09:41:30.132110844 +0200 @@ -617,7 +617,7 @@ protected: ConcurrentMarkSweepGeneration* _cmsGen; // Old gen (CMS) - MemRegion _span; // Span covering above two + MemRegion _span; // Span covering above CardTableRS* _ct; // Card table // CMS marking support structures @@ -641,8 +641,9 @@ NOT_PRODUCT(ssize_t _num_par_pushes;) // ("Weak") Reference processing support. - ReferenceProcessor* _ref_processor; - CMSIsAliveClosure _is_alive_closure; + SpanSubjectToDiscoveryClosure _span_discoverer; + ReferenceProcessor* _ref_processor; + CMSIsAliveClosure _is_alive_closure; // Keep this textually after _markBitMap and _span; c'tor dependency. ConcurrentMarkSweepThread* _cmsThread; // The thread doing the work @@ -841,6 +842,7 @@ ConcurrentMarkSweepPolicy* cp); ConcurrentMarkSweepThread* cmsThread() { return _cmsThread; } + MemRegion ref_processor_span() const { return _span_discoverer.span(); } ReferenceProcessor* ref_processor() { return _ref_processor; } void ref_processor_init();