src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp	Fri May 10 16:15:51 2013
--- new/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp	Fri May 10 16:15:50 2013

*** 22,32 **** --- 22,31 ---- * */ #include "precompiled.hpp" #include "gc_implementation/parallelScavenge/parMarkBitMap.hpp" #include "gc_implementation/parallelScavenge/parMarkBitMap.inline.hpp" #include "gc_implementation/parallelScavenge/psParallelCompact.hpp" #include "oops/oop.inline.hpp" #include "runtime/os.hpp" #include "utilities/bitMap.inline.hpp" #include "services/memTracker.hpp"
*** 106,140 **** --- 105,114 ---- return true; } return false; } size_t ParMarkBitMap::live_words_in_range(HeapWord* beg_addr, HeapWord* end_addr) const { assert(beg_addr <= end_addr, "bad range"); idx_t live_bits = 0; // The bitmap routines require the right boundary to be word-aligned. const idx_t end_bit = addr_to_bit(end_addr); const idx_t range_end = BitMap::word_align_up(end_bit); idx_t beg_bit = find_obj_beg(addr_to_bit(beg_addr), range_end); while (beg_bit < end_bit) { idx_t tmp_end = find_obj_end(beg_bit, range_end); if (tmp_end < end_bit) { live_bits += tmp_end - beg_bit + 1; beg_bit = find_obj_beg(tmp_end + 1, range_end); } else { live_bits += end_bit - beg_bit; // No + 1 here; end_bit is not counted. return bits_to_words(live_bits); } } return bits_to_words(live_bits); } size_t ParMarkBitMap::live_words_in_range(HeapWord* beg_addr, oop end_obj) const { assert(beg_addr <= (HeapWord*)end_obj, "bad range"); assert(is_marked(end_obj), "end_obj must be live");
*** 242,258 **** --- 216,225 ---- live_closure->set_source(bit_to_addr(range_end)); return complete; } #ifndef PRODUCT void ParMarkBitMap::reset_counters() { _cas_tries = _cas_retries = _cas_by_another = 0; } #endif // #ifndef PRODUCT #ifdef ASSERT void ParMarkBitMap::verify_clear() const { const idx_t* const beg = (const idx_t*)_virtual_space->committed_low_addr(); const idx_t* const end = (const idx_t*)_virtual_space->committed_high_addr();

src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File