Mercurial > hg > truffle
comparison src/share/vm/gc_interface/collectedHeap.cpp @ 2226:c5a923563727
6912621: iCMS: Error: assert(_markBitMap.isMarked(addr + 1),"Missing Printezis bit?")
Summary: Fix block_size_if_printezis_bits() so it does not expect the bits, only uses them when available. Fix block_size_no_stall() so it does not stall when the bits are missing such cases, letting the caller deal with zero size returns. Constant pool cache oops do not need to be unparsable or conc_unsafe after their klass pointer is installed. Some cosmetic clean-ups and some assertion checking for conc-usafety which, in the presence of class file redefinition, has no a-priori time boundedness, so all GCs must be able to safely deal with putatively conc-unsafe objects in a stop-world pause.
Reviewed-by: jmasa, johnc
author | ysr |
---|---|
date | Mon, 07 Feb 2011 22:19:57 -0800 |
parents | f95d63e2154a |
children | 1d1603768966 |
comparison
equal
deleted
inserted
replaced
2225:c798c277ddd1 | 2226:c5a923563727 |
---|---|
98 "Found badHeapWordValue in post-allocation check"); | 98 "Found badHeapWordValue in post-allocation check"); |
99 } | 99 } |
100 } | 100 } |
101 } | 101 } |
102 | 102 |
103 void CollectedHeap::check_for_non_bad_heap_word_value(HeapWord* addr, size_t size) | 103 void CollectedHeap::check_for_non_bad_heap_word_value(HeapWord* addr, size_t size) { |
104 { | |
105 if (CheckMemoryInitialization && ZapUnusedHeapArea) { | 104 if (CheckMemoryInitialization && ZapUnusedHeapArea) { |
106 for (size_t slot = 0; slot < size; slot += 1) { | 105 for (size_t slot = 0; slot < size; slot += 1) { |
107 assert((*(intptr_t*) (addr + slot)) == ((intptr_t) badHeapWordVal), | 106 assert((*(intptr_t*) (addr + slot)) == ((intptr_t) badHeapWordVal), |
108 "Found non badHeapWordValue in pre-allocation check"); | 107 "Found non badHeapWordValue in pre-allocation check"); |
109 } | 108 } |