hotspot/src/share/vm/memory/space.cpp
changeset 1894 5c343868d071
parent 1893 c82e388e17c5
child 2105 347008ce7984
equal deleted inserted replaced
1893:c82e388e17c5 1894:5c343868d071
   567   bool last_was_obj_array = false;
   567   bool last_was_obj_array = false;
   568   HeapWord *blk_start_addr, *region_start_addr;
   568   HeapWord *blk_start_addr, *region_start_addr;
   569   if (prev > mr.start()) {
   569   if (prev > mr.start()) {
   570     region_start_addr = prev;
   570     region_start_addr = prev;
   571     blk_start_addr    = prev;
   571     blk_start_addr    = prev;
   572     assert(blk_start_addr == block_start(region_start_addr), "invariant");
   572     // The previous invocation may have pushed "prev" beyond the
       
   573     // last allocated block yet there may be still be blocks
       
   574     // in this region due to a particular coalescing policy.
       
   575     // Relax the assertion so that the case where the unallocated
       
   576     // block is maintained and "prev" is beyond the unallocated
       
   577     // block does not cause the assertion to fire.
       
   578     assert((BlockOffsetArrayUseUnallocatedBlock &&
       
   579             (!is_in(prev))) ||
       
   580            (blk_start_addr == block_start(region_start_addr)), "invariant");
   573   } else {
   581   } else {
   574     region_start_addr = mr.start();
   582     region_start_addr = mr.start();
   575     blk_start_addr    = block_start(region_start_addr);
   583     blk_start_addr    = block_start(region_start_addr);
   576   }
   584   }
   577   HeapWord* region_end_addr = mr.end();
   585   HeapWord* region_end_addr = mr.end();