< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.cpp

Print this page
*** 159,12 ***
  void ShenandoahGenerationalHeap::start_idle_span() {
    young_generation()->heuristics()->start_idle_span();
  }
  
  bool ShenandoahGenerationalHeap::requires_barriers(stackChunkOop obj) const {
!   if (is_idle()) {
!     return false;
    }
  
    if (is_concurrent_young_mark_in_progress() && is_in_young(obj) && !marking_context()->allocated_after_mark_start(obj)) {
      // We are marking young, this object is in young, and it is below the TAMS
      return true;
--- 159,12 ---
  void ShenandoahGenerationalHeap::start_idle_span() {
    young_generation()->heuristics()->start_idle_span();
  }
  
  bool ShenandoahGenerationalHeap::requires_barriers(stackChunkOop obj) const {
!   if (ShenandoahHeap::requires_barriers(obj)) {
!     return true;
    }
  
    if (is_concurrent_young_mark_in_progress() && is_in_young(obj) && !marking_context()->allocated_after_mark_start(obj)) {
      // We are marking young, this object is in young, and it is below the TAMS
      return true;

*** 173,15 ***
    if (is_in_old(obj)) {
      // Card marking barriers are required for objects in the old generation
      return true;
    }
  
-   if (has_forwarded_objects()) {
-     // Object may have pointers that need to be updated
-     return true;
-   }
- 
    return false;
  }
  
  void ShenandoahGenerationalHeap::evacuate_collection_set(ShenandoahGeneration* generation, bool concurrent) {
    ShenandoahRegionIterator regions;
--- 173,10 ---
< prev index next >