< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.hpp

Print this page
*** 45,16 ***
    HeapWord** const _top_at_mark_starts_base;
    HeapWord** const _top_at_mark_starts;
  
    ShenandoahSharedFlag _is_complete;
  
-   // Marking task queues
-   ShenandoahObjToScanQueueSet* _task_queues;
- 
  public:
!   ShenandoahMarkingContext(MemRegion heap_region, MemRegion bitmap_region, size_t num_regions, uint max_queues);
-   ~ShenandoahMarkingContext();
  
    /*
     * Marks the object. Returns true if the object has not been marked before and has
     * been marked by this thread. Returns false if the object has already been marked,
     * or if a competing thread succeeded in marking this object.
--- 45,12 ---
    HeapWord** const _top_at_mark_starts_base;
    HeapWord** const _top_at_mark_starts;
  
    ShenandoahSharedFlag _is_complete;
  
  public:
!   ShenandoahMarkingContext(MemRegion heap_region, MemRegion bitmap_region, size_t num_regions);
  
    /*
     * Marks the object. Returns true if the object has not been marked before and has
     * been marked by this thread. Returns false if the object has already been marked,
     * or if a competing thread succeeded in marking this object.

*** 64,10 ***
--- 60,12 ---
  
    // Simple versions of marking accessors, to be used outside of marking (e.g. no possible concurrent updates)
    inline bool is_marked(oop) const;
    inline bool is_marked_strong(oop obj) const;
    inline bool is_marked_weak(oop obj) const;
+   inline bool is_marked_or_old(oop obj) const;
+   inline bool is_marked_strong_or_old(oop obj) const;
  
    inline HeapWord* get_next_marked_addr(HeapWord* addr, HeapWord* limit) const;
  
    inline bool allocated_after_mark_start(oop obj) const;
    inline bool allocated_after_mark_start(HeapWord* addr) const;

*** 75,20 ***
    inline HeapWord* top_at_mark_start(ShenandoahHeapRegion* r) const;
    inline void capture_top_at_mark_start(ShenandoahHeapRegion* r);
    inline void reset_top_at_mark_start(ShenandoahHeapRegion* r);
    void initialize_top_at_mark_start(ShenandoahHeapRegion* r);
  
    inline void reset_top_bitmap(ShenandoahHeapRegion *r);
    void clear_bitmap(ShenandoahHeapRegion *r);
  
    bool is_bitmap_clear() const;
!   bool is_bitmap_clear_range(HeapWord* start, HeapWord* end) const;
  
    bool is_complete();
    void mark_complete();
    void mark_incomplete();
- 
-   // Task queues
-   ShenandoahObjToScanQueueSet* task_queues() const { return _task_queues; }
  };
  
  #endif // SHARE_GC_SHENANDOAH_SHENANDOAHMARKINGCONTEXT_HPP
--- 73,19 ---
    inline HeapWord* top_at_mark_start(ShenandoahHeapRegion* r) const;
    inline void capture_top_at_mark_start(ShenandoahHeapRegion* r);
    inline void reset_top_at_mark_start(ShenandoahHeapRegion* r);
    void initialize_top_at_mark_start(ShenandoahHeapRegion* r);
  
+   HeapWord* top_bitmap(ShenandoahHeapRegion* r);
+ 
    inline void reset_top_bitmap(ShenandoahHeapRegion *r);
    void clear_bitmap(ShenandoahHeapRegion *r);
  
    bool is_bitmap_clear() const;
!   bool is_bitmap_clear_range(const HeapWord* start, const HeapWord* end) const;
  
    bool is_complete();
    void mark_complete();
    void mark_incomplete();
  };
  
  #endif // SHARE_GC_SHENANDOAH_SHENANDOAHMARKINGCONTEXT_HPP
< prev index next >