src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp

Print this page

        

@@ -8421,11 +8421,11 @@
     // of the free range was recorded.  Record a birth now.
     if (lastFreeRangeCoalesced()) {
       _sp->coalBirth(size);
     }
     _sp->addChunkAndRepairOffsetTable(chunk, size,
-            lastFreeRangeCoalesced());
+            lastFreeRangeCoalesced(), true);
   } else if (CMSTraceSweeper) {
     gclog_or_tty->print_cr("Already in free list: nothing to flush");
   }
   set_inFreeRange(false);
   set_freeRangeInFreeLists(false);

@@ -9182,11 +9182,11 @@
       chunk_at_end->set_size(chunk_at_end_old_size -
                           word_size_change);
       _cmsSpace->freed((HeapWord*) chunk_at_end->end(),
         word_size_change);
 
-      _cmsSpace->returnChunkToDictionary(chunk_at_end);
+      _cmsSpace->returnChunkToDictionary(chunk_at_end, true);
 
       MemRegion mr(_cmsSpace->bottom(), new_word_size);
       _bts->resize(new_word_size);  // resize the block offset shared array
       Universe::heap()->barrier_set()->resize_covered_region(mr);
       _cmsSpace->assert_locked();

@@ -9285,6 +9285,5 @@
 
     default:
       ShouldNotReachHere();
   }
 }
-