Refactor reference code into mirror namespace.
Added two new files: mirror/reference.h and mirror/reference-inl.h.
Change-Id: Ibe3ff6379aef7096ff130594535b7f7c0b7dabce
diff --git a/runtime/mirror/object-inl.h b/runtime/mirror/object-inl.h
index 484c21a..cad1017 100644
--- a/runtime/mirror/object-inl.h
+++ b/runtime/mirror/object-inl.h
@@ -27,6 +27,7 @@
#include "lock_word-inl.h"
#include "monitor.h"
#include "runtime.h"
+#include "reference.h"
#include "throwable.h"
namespace art {
@@ -197,6 +198,12 @@
}
template<VerifyObjectFlags kVerifyFlags>
+inline Reference* Object::AsReference() {
+ DCHECK(IsReferenceInstance<kVerifyFlags>());
+ return down_cast<Reference*>(this);
+}
+
+template<VerifyObjectFlags kVerifyFlags>
inline Array* Object::AsArray() {
DCHECK(IsArrayInstance<kVerifyFlags>());
return down_cast<Array*>(this);
@@ -314,6 +321,12 @@
}
template<VerifyObjectFlags kVerifyFlags>
+inline FinalizerReference* Object::AsFinalizerReference() {
+ DCHECK(IsFinalizerReferenceInstance<kVerifyFlags>());
+ return down_cast<FinalizerReference*>(this);
+}
+
+template<VerifyObjectFlags kVerifyFlags>
inline bool Object::IsPhantomReferenceInstance() {
return GetClass<kVerifyFlags>()->IsPhantomReferenceClass();
}