ObjPtr<>-ify array allocations.
And remove some unnecessary calls to ObjPtr<>::Ptr().
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 31113334
Change-Id: Ie313980f7f23b33b0ccea4fa8d5131d643c59080
diff --git a/runtime/native/java_lang_reflect_Array.cc b/runtime/native/java_lang_reflect_Array.cc
index 8bcda10..452a66d 100644
--- a/runtime/native/java_lang_reflect_Array.cc
+++ b/runtime/native/java_lang_reflect_Array.cc
@@ -44,9 +44,8 @@
Primitive::kPrimInt);
Handle<mirror::IntArray> dimensions_array(
hs.NewHandle(ObjPtr<mirror::IntArray>::DownCast(dimensions_obj)));
- mirror::Array* new_array = mirror::Array::CreateMultiArray(soa.Self(),
- element_class,
- dimensions_array);
+ ObjPtr<mirror::Array> new_array =
+ mirror::Array::CreateMultiArray(soa.Self(), element_class, dimensions_array);
return soa.AddLocalReference<jobject>(new_array);
}
@@ -57,16 +56,16 @@
ThrowNegativeArraySizeException(length);
return nullptr;
}
- ObjPtr<mirror::Class> element_class = soa.Decode<mirror::Class>(javaElementClass);
Runtime* runtime = Runtime::Current();
ClassLinker* class_linker = runtime->GetClassLinker();
- ObjPtr<mirror::Class> array_class = class_linker->FindArrayClass(soa.Self(), &element_class);
+ ObjPtr<mirror::Class> array_class =
+ class_linker->FindArrayClass(soa.Self(), soa.Decode<mirror::Class>(javaElementClass));
if (UNLIKELY(array_class == nullptr)) {
CHECK(soa.Self()->IsExceptionPending());
return nullptr;
}
DCHECK(array_class->IsObjectArrayClass());
- ObjPtr<mirror::Array> new_array = mirror::ObjectArray<mirror::Object*>::Alloc(
+ ObjPtr<mirror::Array> new_array = mirror::ObjectArray<mirror::Object>::Alloc(
soa.Self(),
array_class,
length,