< prev index next >
src/share/vm/gc/shenandoah/shenandoahHeapRegion.cpp
Print this page
rev 14453 : Remove secondary marking bitmap.
*** 385,418 ****
} else {
st->print("| ");
}
st->print("|CP " SIZE_FORMAT_W(3), _critical_pins);
! st->print_cr("|TAMS " PTR_FORMAT ", " PTR_FORMAT "|",
! p2i(ShenandoahHeap::heap()->complete_top_at_mark_start(_bottom)),
! p2i(ShenandoahHeap::heap()->next_top_at_mark_start(_bottom)));
! }
!
! void ShenandoahHeapRegion::object_iterate_interruptible(ObjectClosure* blk, bool allow_cancel) {
! HeapWord* p = bottom() + BrooksPointer::word_size();
! while (p < top() && !(allow_cancel && _heap->cancelled_concgc())) {
! blk->do_object(oop(p));
! p += oop(p)->size() + BrooksPointer::word_size();
! }
! }
!
! HeapWord* ShenandoahHeapRegion::object_iterate_careful(ObjectClosureCareful* blk) {
! HeapWord * limit = concurrent_iteration_safe_limit();
! assert(limit <= top(), "sanity check");
! for (HeapWord* p = bottom() + BrooksPointer::word_size(); p < limit;) {
! size_t size = blk->do_object_careful(oop(p));
! if (size == 0) {
! return p; // failed at p
! }
! p += size + BrooksPointer::word_size();
! }
! return NULL; // all done
}
void ShenandoahHeapRegion::oop_iterate(ExtendedOopClosure* blk) {
if (!is_active()) return;
if (is_humongous()) {
--- 385,396 ----
} else {
st->print("| ");
}
st->print("|CP " SIZE_FORMAT_W(3), _critical_pins);
! st->print_cr("|TAMS " PTR_FORMAT "|",
! p2i(ShenandoahHeap::heap()->top_at_mark_start(_bottom)));
}
void ShenandoahHeapRegion::oop_iterate(ExtendedOopClosure* blk) {
if (!is_active()) return;
if (is_humongous()) {
*** 478,492 ****
// Reset seq numbers
_first_alloc_seq_num = 0;
_last_alloc_seq_num = 0;
! // Reset C-TAMS pointer to ensure size-based iteration, everything
// in that regions is going to be new objects.
! _heap->set_complete_top_at_mark_start(bottom(), bottom());
! // We can only safely reset the C-TAMS pointer if the bitmap is clear for that region.
! assert(_heap->is_complete_bitmap_clear_range(bottom(), end()), "must be clear");
make_empty_committed();
}
void ShenandoahHeapRegion::recycle() {
--- 456,470 ----
// Reset seq numbers
_first_alloc_seq_num = 0;
_last_alloc_seq_num = 0;
! // Reset TAMS pointer to ensure size-based iteration, everything
// in that regions is going to be new objects.
! _heap->set_top_at_mark_start(bottom(), bottom());
! // We can only safely reset the TAMS pointer if the bitmap is clear for that region.
! assert(_heap->is_bitmap_clear_range(bottom(), end()), "must be clear");
make_empty_committed();
}
void ShenandoahHeapRegion::recycle() {
< prev index next >