< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahStringDedup.cpp
Print this page
*** 48,65 ****
if (java_string->age() <= StringDeduplicationAgeThreshold) {
const markWord mark = java_string->mark();
// Having/had displaced header, too risk to deal with them, skip
! if (mark == markWord::INFLATING() || mark->has_displaced_mark_helper()) {
return;
}
// Increase string age and enqueue it when it rearches age threshold
! markWord new_mark = mark->incr_age();
if (mark == java_string->cas_set_mark(new_mark, mark)) {
! if (mark->age() == StringDeduplicationAgeThreshold) {
StringDedupQueue::push(ShenandoahWorkerSession::worker_id(), java_string);
}
}
}
}
--- 48,65 ----
if (java_string->age() <= StringDeduplicationAgeThreshold) {
const markWord mark = java_string->mark();
// Having/had displaced header, too risk to deal with them, skip
! if (mark == markWord::INFLATING() || mark.has_displaced_mark_helper()) {
return;
}
// Increase string age and enqueue it when it rearches age threshold
! markWord new_mark = mark.incr_age();
if (mark == java_string->cas_set_mark(new_mark, mark)) {
! if (mark.age() == StringDeduplicationAgeThreshold) {
StringDedupQueue::push(ShenandoahWorkerSession::worker_id(), java_string);
}
}
}
}
< prev index next >