ObjPtr<>-ify mirror::Object::As*(), fix stale refs in test.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 31113334
Change-Id: Ia04c4996f5cbfa1f26acbadcd747342c57b1aac3
diff --git a/runtime/mirror/object-inl.h b/runtime/mirror/object-inl.h
index 3fa5d80..e203658 100644
--- a/runtime/mirror/object-inl.h
+++ b/runtime/mirror/object-inl.h
@@ -148,9 +148,9 @@
}
template<VerifyObjectFlags kVerifyFlags>
-inline Class* Object::AsClass() {
+inline ObjPtr<Class> Object::AsClass() {
DCHECK((IsClass<kVerifyFlags>()));
- return down_cast<Class*>(this);
+ return ObjPtr<Class>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags>
@@ -164,9 +164,9 @@
}
template<class T, VerifyObjectFlags kVerifyFlags>
-inline ObjectArray<T>* Object::AsObjectArray() {
+inline ObjPtr<ObjectArray<T>> Object::AsObjectArray() {
DCHECK((IsObjectArray<kVerifyFlags>()));
- return down_cast<ObjectArray<T>*>(this);
+ return ObjPtr<ObjectArray<T>>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags>
@@ -182,15 +182,15 @@
}
template<VerifyObjectFlags kVerifyFlags, ReadBarrierOption kReadBarrierOption>
-inline Reference* Object::AsReference() {
+inline ObjPtr<Reference> Object::AsReference() {
DCHECK((IsReferenceInstance<kVerifyFlags, kReadBarrierOption>()));
- return down_cast<Reference*>(this);
+ return ObjPtr<Reference>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags>
-inline Array* Object::AsArray() {
+inline ObjPtr<Array> Object::AsArray() {
DCHECK((IsArrayInstance<kVerifyFlags>()));
- return down_cast<Array*>(this);
+ return ObjPtr<Array>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags, Primitive::Type kType>
@@ -210,9 +210,9 @@
}
template<VerifyObjectFlags kVerifyFlags>
-inline BooleanArray* Object::AsBooleanArray() {
+inline ObjPtr<BooleanArray> Object::AsBooleanArray() {
DCHECK(IsBooleanArray<kVerifyFlags>());
- return down_cast<BooleanArray*>(this);
+ return ObjPtr<BooleanArray>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags>
@@ -221,9 +221,9 @@
}
template<VerifyObjectFlags kVerifyFlags>
-inline ByteArray* Object::AsByteArray() {
+inline ObjPtr<ByteArray> Object::AsByteArray() {
DCHECK(IsByteArray<kVerifyFlags>());
- return down_cast<ByteArray*>(this);
+ return ObjPtr<ByteArray>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags>
@@ -232,9 +232,9 @@
}
template<VerifyObjectFlags kVerifyFlags>
-inline CharArray* Object::AsCharArray() {
+inline ObjPtr<CharArray> Object::AsCharArray() {
DCHECK(IsCharArray<kVerifyFlags>());
- return down_cast<CharArray*>(this);
+ return ObjPtr<CharArray>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags>
@@ -243,9 +243,9 @@
}
template<VerifyObjectFlags kVerifyFlags>
-inline ShortArray* Object::AsShortArray() {
+inline ObjPtr<ShortArray> Object::AsShortArray() {
DCHECK(IsShortArray<kVerifyFlags>());
- return down_cast<ShortArray*>(this);
+ return ObjPtr<ShortArray>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags>
@@ -254,11 +254,11 @@
}
template<VerifyObjectFlags kVerifyFlags>
-inline IntArray* Object::AsIntArrayUnchecked() {
- return down_cast<IntArray*>(this);
+inline ObjPtr<IntArray> Object::AsIntArrayUnchecked() {
+ return ObjPtr<IntArray>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags>
-inline IntArray* Object::AsIntArray() {
+inline ObjPtr<IntArray> Object::AsIntArray() {
DCHECK((IsIntArray<kVerifyFlags>()));
return AsIntArrayUnchecked<kVerifyFlags>();
}
@@ -269,11 +269,11 @@
}
template<VerifyObjectFlags kVerifyFlags>
-inline LongArray* Object::AsLongArrayUnchecked() {
- return down_cast<LongArray*>(this);
+inline ObjPtr<LongArray> Object::AsLongArrayUnchecked() {
+ return ObjPtr<LongArray>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags>
-inline LongArray* Object::AsLongArray() {
+inline ObjPtr<LongArray> Object::AsLongArray() {
DCHECK((IsLongArray<kVerifyFlags>()));
return AsLongArrayUnchecked<kVerifyFlags>();
}
@@ -284,9 +284,9 @@
}
template<VerifyObjectFlags kVerifyFlags>
-inline FloatArray* Object::AsFloatArray() {
+inline ObjPtr<FloatArray> Object::AsFloatArray() {
DCHECK(IsFloatArray<kVerifyFlags>());
- return down_cast<FloatArray*>(this);
+ return ObjPtr<FloatArray>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags>
@@ -295,9 +295,9 @@
}
template<VerifyObjectFlags kVerifyFlags>
-inline DoubleArray* Object::AsDoubleArray() {
+inline ObjPtr<DoubleArray> Object::AsDoubleArray() {
DCHECK(IsDoubleArray<kVerifyFlags>());
- return down_cast<DoubleArray*>(this);
+ return ObjPtr<DoubleArray>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags, ReadBarrierOption kReadBarrierOption>
@@ -306,15 +306,15 @@
}
template<VerifyObjectFlags kVerifyFlags, ReadBarrierOption kReadBarrierOption>
-inline String* Object::AsString() {
+inline ObjPtr<String> Object::AsString() {
DCHECK((IsString<kVerifyFlags, kReadBarrierOption>()));
- return down_cast<String*>(this);
+ return ObjPtr<String>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags>
-inline Throwable* Object::AsThrowable() {
+inline ObjPtr<Throwable> Object::AsThrowable() {
DCHECK(GetClass<kVerifyFlags>()->IsThrowableClass());
- return down_cast<Throwable*>(this);
+ return ObjPtr<Throwable>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags>
@@ -333,9 +333,9 @@
}
template<VerifyObjectFlags kVerifyFlags>
-inline FinalizerReference* Object::AsFinalizerReference() {
+inline ObjPtr<FinalizerReference> Object::AsFinalizerReference() {
DCHECK(IsFinalizerReferenceInstance<kVerifyFlags>());
- return down_cast<FinalizerReference*>(this);
+ return ObjPtr<FinalizerReference>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags>
@@ -918,9 +918,9 @@
}
template<VerifyObjectFlags kVerifyFlags, ReadBarrierOption kReadBarrierOption>
-inline mirror::ClassLoader* Object::AsClassLoader() {
+inline ObjPtr<ClassLoader> Object::AsClassLoader() {
DCHECK((IsClassLoader<kVerifyFlags, kReadBarrierOption>()));
- return down_cast<mirror::ClassLoader*>(this);
+ return ObjPtr<ClassLoader>::DownCast(this);
}
template<VerifyObjectFlags kVerifyFlags, ReadBarrierOption kReadBarrierOption>
@@ -929,9 +929,9 @@
}
template<VerifyObjectFlags kVerifyFlags, ReadBarrierOption kReadBarrierOption>
-inline mirror::DexCache* Object::AsDexCache() {
+inline ObjPtr<mirror::DexCache> Object::AsDexCache() {
DCHECK((IsDexCache<kVerifyFlags, kReadBarrierOption>()));
- return down_cast<mirror::DexCache*>(this);
+ return ObjPtr<DexCache>::DownCast(this);
}
template<bool kTransactionActive, bool kCheckTransaction>