< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp
Print this page
rev 55227 : 8225341: Shenandoah: CM::update_thread_roots() needs to handle derived pointers
*** 329,340 ****
--- 329,346 ----
};
void ShenandoahConcurrentMark::update_thread_roots(ShenandoahPhaseTimings::Phase root_phase) {
WorkGang* workers = _heap->workers();
bool is_par = workers->active_workers() > 1;
+ #if defined(COMPILER2) || INCLUDE_JVMCI
+ DerivedPointerTable::clear();
+ #endif
ShenandoahUpdateThreadRootsTask task(is_par, root_phase);
workers->run_task(&task);
+ #if defined(COMPILER2) || INCLUDE_JVMCI
+ DerivedPointerTable::update_pointers();
+ #endif
}
void ShenandoahConcurrentMark::initialize(uint workers) {
_heap = ShenandoahHeap::heap();
< prev index next >