< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp

Print this page
rev 55322 : 8225550: Shenandoah: Prevent SH::object_iterate() call's side-effects

*** 1277,1287 **** --- 1277,1292 ---- Stack<oop,mtGC> oop_stack; // First, we process all GC roots. This populates the work stack with initial objects. ShenandoahAllRootScanner rp(1, ShenandoahPhaseTimings::_num_phases); ObjectIterateScanRootClosure oops(&_aux_bit_map, &oop_stack); + + if (unload_classes()) { + rp.strong_roots_do_unchecked(&oops); + } else { rp.roots_do_unchecked(&oops); + } // Work through the oop stack to traverse heap. while (! oop_stack.is_empty()) { oop obj = oop_stack.pop(); assert(oopDesc::is_oop(obj), "must be a valid oop");
< prev index next >