< prev index next > src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.cpp
Print this page
void ShenandoahGenerationalHeap::start_idle_span() {
young_generation()->heuristics()->start_idle_span();
}
bool ShenandoahGenerationalHeap::requires_barriers(stackChunkOop obj) const {
- if (is_idle()) {
- return false;
+ if (ShenandoahHeap::requires_barriers(obj)) {
+ return true;
}
if (is_concurrent_young_mark_in_progress() && is_in_young(obj) && !marking_context()->allocated_after_mark_start(obj)) {
// We are marking young, this object is in young, and it is below the TAMS
return true;
if (is_in_old(obj)) {
// Card marking barriers are required for objects in the old generation
return true;
}
- if (has_forwarded_objects()) {
- // Object may have pointers that need to be updated
- return true;
- }
-
return false;
}
void ShenandoahGenerationalHeap::evacuate_collection_set(ShenandoahGeneration* generation, bool concurrent) {
ShenandoahRegionIterator regions;
< prev index next >