< prev index next >

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

Print this page
@@ -159,12 +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 (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 +173,10 @@
    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;
< prev index next >