< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp
Print this page
*** 55,64 ****
--- 55,65 ----
class ShenandoahCollectionSet;
class ShenandoahFreeSet;
class ShenandoahConcurrentMark;
class ShenandoahMarkCompact;
class ShenandoahMonitoringSupport;
+ class ShenandoahObjectMarker;
class ShenandoahPacer;
class ShenandoahTraversalGC;
class ShenandoahVerifier;
class ShenandoahWorkGang;
class VMStructs;
*** 117,126 ****
--- 118,128 ----
class ShenandoahHeap : public CollectedHeap {
friend class ShenandoahAsserts;
friend class VMStructs;
friend class ShenandoahGCSession;
friend class ShenandoahGCStateResetter;
+ friend class ShenandoahObjectMarker;
// ---------- Locks that guard important data structures in Heap
//
private:
ShenandoahHeapLock _lock;
*** 559,568 ****
--- 561,571 ----
// Used for parsing heap during error printing
HeapWord* block_start(const void* addr) const;
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);
// Keep alive an object that was loaded with AS_NO_KEEPALIVE.
void keep_alive(oop obj);
*** 652,661 ****
--- 655,668 ----
// there is a tradeoff between static/dynamic footprint that translates
// into cache pressure (which is already high during marking), and
// 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;
inline void mark_complete_marking_context();
inline void mark_incomplete_marking_context();
< prev index next >