< prev index next >

src/hotspot/share/gc/shared/plab.cpp

Print this page
rev 50815 : Abstraction for TLAB dummy object

*** 84,103 **** size_t PLAB::retire_internal() { size_t result = 0; if (_top < _hard_end) { assert(pointer_delta(_hard_end, _top) >= (size_t)(oopDesc::header_size() + Universe::heap()->oop_extra_words()), "better have enough space left to fill with dummy"); ! HeapWord* obj = Universe::heap()->tlab_post_allocation_setup(_top); ! CollectedHeap::fill_with_object(obj, _hard_end); result += invalidate(); } return result; } void PLAB::add_undo_waste(HeapWord* obj, size_t word_sz) { ! HeapWord* head_obj = Universe::heap()->tlab_post_allocation_setup(obj); ! CollectedHeap::fill_with_object(head_obj, word_sz - (head_obj - obj)); _undo_wasted += word_sz; } void PLAB::undo_last_allocation(HeapWord* obj, size_t word_sz) { assert(pointer_delta(_top, _bottom) >= word_sz, "Bad undo"); --- 84,101 ---- size_t PLAB::retire_internal() { size_t result = 0; if (_top < _hard_end) { assert(pointer_delta(_hard_end, _top) >= (size_t)(oopDesc::header_size() + Universe::heap()->oop_extra_words()), "better have enough space left to fill with dummy"); ! Universe::heap()->fill_with_dummy_object(_top, _hard_end, false); result += invalidate(); } return result; } void PLAB::add_undo_waste(HeapWord* obj, size_t word_sz) { ! Universe::heap()->fill_with_dummy_object(obj, obj + word_sz, false); _undo_wasted += word_sz; } void PLAB::undo_last_allocation(HeapWord* obj, size_t word_sz) { assert(pointer_delta(_top, _bottom) >= word_sz, "Bad undo");
< prev index next >