< 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 >