Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp @ 3359:7d64aa23eb96
7043891: CMS: assert(_whole_heap.contains(p)) failed: out of bounds access to card marking array
Summary: Fixed assertion checking code that was attempting to translate addresses past end of space for card-table slot. Also elaborated some assertion checking messages.
Reviewed-by: iveresov, jmasa, tonyp
author | ysr |
---|---|
date | Wed, 11 May 2011 15:47:12 -0700 |
parents | fc2b798ab316 |
children | fe189d4a44e9 5c0a3c1858b1 |
comparison
equal
deleted
inserted
replaced
3358:97b64f73103b | 3359:7d64aa23eb96 |
---|---|
349 // will have been logged in the LNC for that chunk. | 349 // will have been logged in the LNC for that chunk. |
350 // We need to examine as many chunks to the right as this object | 350 // We need to examine as many chunks to the right as this object |
351 // covers. | 351 // covers. |
352 const uintptr_t last_chunk_index_to_check = addr_to_chunk_index(last_block + last_block_size - 1) | 352 const uintptr_t last_chunk_index_to_check = addr_to_chunk_index(last_block + last_block_size - 1) |
353 - lowest_non_clean_base_chunk_index; | 353 - lowest_non_clean_base_chunk_index; |
354 DEBUG_ONLY(const uintptr_t last_chunk_index = addr_to_chunk_index(used.end()) | 354 DEBUG_ONLY(const uintptr_t last_chunk_index = addr_to_chunk_index(used.last()) |
355 - lowest_non_clean_base_chunk_index;) | 355 - lowest_non_clean_base_chunk_index;) |
356 assert(last_chunk_index_to_check <= last_chunk_index, | 356 assert(last_chunk_index_to_check <= last_chunk_index, |
357 err_msg("Out of bounds: last_chunk_index_to_check " INTPTR_FORMAT | 357 err_msg("Out of bounds: last_chunk_index_to_check " INTPTR_FORMAT |
358 " exceeds last_chunk_index " INTPTR_FORMAT, | 358 " exceeds last_chunk_index " INTPTR_FORMAT, |
359 last_chunk_index_to_check, last_chunk_index)); | 359 last_chunk_index_to_check, last_chunk_index)); |