hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
changeset 7907 2cd00061953b
parent 7903 c694e52ff9cb
child 7908 d1ab39295cee
equal deleted inserted replaced
7906:2e43f97e05f7 7907:2cd00061953b
  8117       // this is a free chunk that can potentially be coalesced by the sweeper;
  8117       // this is a free chunk that can potentially be coalesced by the sweeper;
  8118       if (!inFreeRange()) {
  8118       if (!inFreeRange()) {
  8119         // if the next chunk is a free block that can't be coalesced
  8119         // if the next chunk is a free block that can't be coalesced
  8120         // it doesn't make sense to remove this chunk from the free lists
  8120         // it doesn't make sense to remove this chunk from the free lists
  8121         FreeChunk* nextChunk = (FreeChunk*)(addr + size);
  8121         FreeChunk* nextChunk = (FreeChunk*)(addr + size);
  8122         if (nextChunk->isFree()    &&            // The next chunk is free...
  8122         assert((HeapWord*)nextChunk <= _sp->end(), "Chunk size out of bounds?");
  8123             nextChunk->cantCoalesce()) {         // ... but cant be coalesced
  8123         if ((HeapWord*)nextChunk < _sp->end() &&     // There is another free chunk to the right ...
       
  8124             nextChunk->isFree()               &&     // ... which is free...
       
  8125             nextChunk->cantCoalesce()) {             // ... but can't be coalesced
  8124           // nothing to do
  8126           // nothing to do
  8125         } else {
  8127         } else {
  8126           // Potentially the start of a new free range:
  8128           // Potentially the start of a new free range:
  8127           // Don't eagerly remove it from the free lists.
  8129           // Don't eagerly remove it from the free lists.
  8128           // No need to remove it if it will just be put
  8130           // No need to remove it if it will just be put