< 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 >