--- old/src/hotspot/share/gc/g1/g1FullCollector.hpp 2018-04-17 15:16:23.406570421 +0200 +++ new/src/hotspot/share/gc/g1/g1FullCollector.hpp 2018-04-17 15:16:23.134562053 +0200 @@ -42,6 +42,15 @@ class GCMemoryManager; class ReferenceProcessor; +// Subject-to-discovery closure for reference processing during Full GC. During +// Full GC the whole heap is subject to discovery. +class G1FullGCSubjectToDiscoveryClosure: public BoolObjectClosure { +public: + bool do_object_b(oop p) { + return (p != NULL); + } +}; + // The G1FullCollector holds data associated with the current Full GC. class G1FullCollector : StackObj { G1CollectedHeap* _heap; @@ -56,6 +65,9 @@ G1IsAliveClosure _is_alive; ReferenceProcessorIsAliveMutator _is_alive_mutator; + G1FullGCSubjectToDiscoveryClosure _always_subject_to_discovery; + ReferenceProcessorSubjectToDiscoveryMutator _is_subject_mutator; + public: G1FullCollector(G1CollectedHeap* heap, GCMemoryManager* memory_manager, bool explicit_gc, bool clear_soft_refs); ~G1FullCollector();