8021823: G1: Concurrent marking crashes with -XX:ObjectAlignmentInBytes>=32 in 64bit VMs

Correctly calculate the initialization value for the shift between object start and bitmap bit in the G1 mark bitmaps.

Reviewed-by: tonyp
This commit is contained in:
Thomas Schatzl 2013-09-11 10:19:16 +02:00
parent a136d05739
commit 87a98b7267
2 changed files with 67 additions and 3 deletions

View file

@ -481,9 +481,8 @@ uint ConcurrentMark::scale_parallel_threads(uint n_par_threads) {
ConcurrentMark::ConcurrentMark(G1CollectedHeap* g1h, ReservedSpace heap_rs) :
_g1h(g1h),
_markBitMap1(MinObjAlignment - 1),
_markBitMap2(MinObjAlignment - 1),
_markBitMap1(log2_intptr(MinObjAlignment)),
_markBitMap2(log2_intptr(MinObjAlignment)),
_parallel_marking_threads(0),
_max_parallel_marking_threads(0),
_sleep_factor(0.0),