< prev index next >
src/hotspot/share/classfile/javaClasses.cpp
Print this page
rev 47764 : [mq]: Access_api
@@ -3062,10 +3062,23 @@
case T_DOUBLE: st->print("%lf", value->d); break;
default: st->print("type %d?", type); break;
}
}
+// Support for java_lang_ref_Reference
+
+bool java_lang_ref_Reference::is_referent_field(oop obj, ptrdiff_t offset) {
+ assert(!oopDesc::is_null(obj), "sanity");
+ if (offset != java_lang_ref_Reference::referent_offset) {
+ return false;
+ }
+ Klass* k = obj->klass();
+ bool is_reference = InstanceKlass::cast(k)->reference_type() != REF_NONE;
+ assert(!is_reference || InstanceKlass::cast(obj->klass())->is_subclass_of(SystemDictionary::Reference_klass()), "sanity");
+ return is_reference;
+}
+
// Support for java_lang_ref_SoftReference
jlong java_lang_ref_SoftReference::timestamp(oop ref) {
return ref->long_field(timestamp_offset);
}
< prev index next >