< prev index next >
src/share/vm/oops/instanceRefKlass.inline.hpp
Print this page
*** 65,74 ****
--- 65,81 ----
}
// treat next as normal oop
if (contains(next_addr)) {
Devirtualizer<nv>::do_oop(closure, next_addr);
}
+ // treat value as normal oop if Ephemeron
+ if (reference_type() == REF_EPHEMERON) {
+ T* value_addr = (T*)java_lang_ref_Ephemeron::value_addr(obj);
+ if (contains(value_addr)) {
+ Devirtualizer<nv>::do_oop(closure, value_addr);
+ }
+ }
}
class AlwaysContains {
public:
template <typename T> bool operator()(T* p) const { return true; }
< prev index next >