Mercurial > hg > graal-jvmci-8
changeset 2136:c91cc404ca46
7011940: iCMS: SIGSEGV in SweepClosure::do_already_free_chunk(FreeChunk*)+0x360
Summary: Revert a (relaxed version of the) bounds-check that was incorrectly removed in the fix for 7008136.
Reviewed-by: jmasa, johnc
author | ysr |
---|---|
date | Thu, 13 Jan 2011 11:33:56 -0800 |
parents | 2e0b0c4671e4 |
children | ffd725ff6943 |
files | src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp |
diffstat | 1 files changed, 4 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Thu Jan 13 04:43:30 2011 -0800 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Thu Jan 13 11:33:56 2011 -0800 @@ -8119,8 +8119,10 @@ // if the next chunk is a free block that can't be coalesced // it doesn't make sense to remove this chunk from the free lists FreeChunk* nextChunk = (FreeChunk*)(addr + size); - if (nextChunk->isFree() && // The next chunk is free... - nextChunk->cantCoalesce()) { // ... but cant be coalesced + assert((HeapWord*)nextChunk <= _sp->end(), "Chunk size out of bounds?"); + if ((HeapWord*)nextChunk < _sp->end() && // There is another free chunk to the right ... + nextChunk->isFree() && // ... which is free... + nextChunk->cantCoalesce()) { // ... but can't be coalesced // nothing to do } else { // Potentially the start of a new free range: