Thu, 21 Feb 2008 11:03:54 -0800
6642634: Test nsk/regression/b6186200 crashed with SIGSEGV
Summary: Use correct allocation path in expand_and_allocate() so object's mark and p-bits are set as appropriate.
Reviewed-by: jmasa, pbk
src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Wed Feb 20 08:40:31 2008 -0800 1.2 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Thu Feb 21 11:03:54 2008 -0800 1.3 @@ -3121,12 +3121,7 @@ 1.4 if (GCExpandToAllocateDelayMillis > 0) { 1.5 os::sleep(Thread::current(), GCExpandToAllocateDelayMillis, false); 1.6 } 1.7 - size_t adj_word_sz = CompactibleFreeListSpace::adjustObjectSize(word_size); 1.8 - if (parallel) { 1.9 - return cmsSpace()->par_allocate(adj_word_sz); 1.10 - } else { 1.11 - return cmsSpace()->allocate(adj_word_sz); 1.12 - } 1.13 + return have_lock_and_allocate(word_size, tlab); 1.14 } 1.15 1.16 // YSR: All of this generation expansion/shrinking stuff is an exact copy of