equal
deleted
inserted
replaced
1503 // get unmarked objects in the roots. |
1503 // get unmarked objects in the roots. |
1504 |
1504 |
1505 if (!cancelled_gc()) { |
1505 if (!cancelled_gc()) { |
1506 concurrent_mark()->finish_mark_from_roots(/* full_gc = */ false); |
1506 concurrent_mark()->finish_mark_from_roots(/* full_gc = */ false); |
1507 |
1507 |
1508 // Degen may be caused by failed evacuation of roots |
1508 if (has_forwarded_objects()) { |
1509 if (is_degenerated_gc_in_progress() && has_forwarded_objects()) { |
1509 // Degen may be caused by failed evacuation of roots |
1510 concurrent_mark()->update_roots(ShenandoahPhaseTimings::degen_gc_update_roots); |
1510 if (is_degenerated_gc_in_progress()) { |
1511 } |
1511 concurrent_mark()->update_roots(ShenandoahPhaseTimings::degen_gc_update_roots); |
|
1512 } else { |
|
1513 concurrent_mark()->update_thread_roots(ShenandoahPhaseTimings::update_roots); |
|
1514 } |
|
1515 } |
1512 |
1516 |
1513 if (ShenandoahVerify) { |
1517 if (ShenandoahVerify) { |
1514 verifier()->verify_roots_no_forwarded(); |
1518 verifier()->verify_roots_no_forwarded(); |
1515 } |
1519 } |
1516 |
1520 |