< prev index next > src/hotspot/share/gc/parallel/psParallelCompact.cpp
Print this page
ParMarkBitMap PSParallelCompact::_mark_bitmap;
ParallelCompactData PSParallelCompact::_summary_data;
PSParallelCompact::IsAliveClosure PSParallelCompact::_is_alive_closure;
! class PCAdjustPointerClosure: public BasicOopIterateClosure {
template <typename T>
void do_oop_work(T* p) { PSParallelCompact::adjust_pointer(p); }
public:
virtual void do_oop(oop* p) { do_oop_work(p); }
virtual void do_oop(narrowOop* p) { do_oop_work(p); }
virtual ReferenceIterationMode reference_iteration_mode() { return DO_FIELDS; }
};
! static PCAdjustPointerClosure pc_adjust_pointer_closure;
bool PSParallelCompact::IsAliveClosure::do_object_b(oop p) { return mark_bitmap()->is_marked(p); }
void PSParallelCompact::post_initialize() {
ParallelScavengeHeap* heap = ParallelScavengeHeap::heap();
ParMarkBitMap PSParallelCompact::_mark_bitmap;
ParallelCompactData PSParallelCompact::_summary_data;
PSParallelCompact::IsAliveClosure PSParallelCompact::_is_alive_closure;
! class PCAdjustPointerClosureNew: public BasicOopIterateClosure {
template <typename T>
void do_oop_work(T* p) { PSParallelCompact::adjust_pointer(p); }
public:
virtual void do_oop(oop* p) { do_oop_work(p); }
virtual void do_oop(narrowOop* p) { do_oop_work(p); }
virtual ReferenceIterationMode reference_iteration_mode() { return DO_FIELDS; }
};
! static PCAdjustPointerClosureNew pc_adjust_pointer_closure;
bool PSParallelCompact::IsAliveClosure::do_object_b(oop p) { return mark_bitmap()->is_marked(p); }
void PSParallelCompact::post_initialize() {
ParallelScavengeHeap* heap = ParallelScavengeHeap::heap();
#if COMPILER2_OR_JVMCI
assert(DerivedPointerTable::is_active(), "Sanity");
DerivedPointerTable::set_active(false);
#endif
+ FullGCForwarding::begin();
+
forward_to_new_addr();
adjust_pointers();
compact();
+ FullGCForwarding::end();
+
ParCompactionManager::_preserved_marks_set->restore(&ParallelScavengeHeap::heap()->workers());
ParCompactionManager::verify_all_region_stack_empty();
// Reset the mark bitmap, summary data, and do other bookkeeping. Must be
< prev index next >