--- old/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp 2020-02-21 11:14:39.452183812 +0100 +++ new/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp 2020-02-21 11:14:39.196179528 +0100 @@ -57,6 +57,7 @@ class ShenandoahConcurrentMark; class ShenandoahMarkCompact; class ShenandoahMonitoringSupport; +class ShenandoahObjectMarker; class ShenandoahPacer; class ShenandoahTraversalGC; class ShenandoahVerifier; @@ -119,6 +120,7 @@ friend class VMStructs; friend class ShenandoahGCSession; friend class ShenandoahGCStateResetter; + friend class ShenandoahObjectMarker; // ---------- Locks that guard important data structures in Heap // @@ -561,6 +563,7 @@ bool block_is_obj(const HeapWord* addr) const; bool print_location(outputStream* st, void* addr) const; + ObjectMarker* object_marker(); // Used for native heap walkers: heap dumpers, mostly void object_iterate(ObjectClosure* cl); @@ -654,6 +657,10 @@ // too many atomic updates. size_t/jint is too large, jbyte is too small. jushort** _liveness_cache; +private: + bool commit_aux_bitmap(); + void uncommit_aux_bit_map(); + public: inline ShenandoahMarkingContext* complete_marking_context() const; inline ShenandoahMarkingContext* marking_context() const;