< prev index next >
src/share/vm/gc/parallel/psPromotionManager.cpp
Print this page
*** 382,391 ****
--- 382,398 ----
}
// Treat next as normal oop; next is a link in the reference queue.
if (PSScavenge::should_scavenge(next_addr)) {
pm->claim_or_forward_depth(next_addr);
}
+ // Treat value as normal oop if Epehemeron
+ if (klass->reference_type() == REF_EPHEMERON) {
+ T* value_addr = (T*)java_lang_ref_Ephemeron::value_addr(obj);
+ if (PSScavenge::should_scavenge(value_addr)) {
+ pm->claim_or_forward_depth(value_addr);
+ }
+ }
klass->InstanceKlass::oop_ps_push_contents(obj, pm);
}
void InstanceRefKlass::oop_ps_push_contents(oop obj, PSPromotionManager* pm) {
if (UseCompressedOops) {
< prev index next >