From 40381fb9dc4b4cf274f1e58b2cdf4396202c6189 Mon Sep 17 00:00:00 2001 From: Brian Carlstrom Date: Wed, 19 Oct 2011 14:13:40 -0700 Subject: Reuse SIRT for C++ references Change-Id: I8310e55da42f55f7ec60f6b17face436c77a979f --- src/java_lang_reflect_Array.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/java_lang_reflect_Array.cc') diff --git a/src/java_lang_reflect_Array.cc b/src/java_lang_reflect_Array.cc index f1456b10d3..d1572826ec 100644 --- a/src/java_lang_reflect_Array.cc +++ b/src/java_lang_reflect_Array.cc @@ -29,13 +29,13 @@ namespace { // Objects or primitive types. Array* CreateMultiArray(Class* array_class, int current_dimension, IntArray* dimensions) { int32_t array_length = dimensions->Get(current_dimension++); - Array* new_array = Array::Alloc(array_class, array_length); - if (new_array == NULL) { + SirtRef new_array(Array::Alloc(array_class, array_length)); + if (new_array.get() == NULL) { CHECK(Thread::Current()->IsExceptionPending()); return NULL; } if (current_dimension == dimensions->GetLength()) { - return new_array; + return new_array.get(); } if (!array_class->GetComponentType()->IsArrayClass()) { @@ -53,16 +53,16 @@ Array* CreateMultiArray(Class* array_class, int current_dimension, IntArray* dim } DCHECK(sub_array_class->IsArrayClass()); // Create a new sub-array in every element of the array. - ObjectArray* object_array = new_array->AsObjectArray(); + SirtRef > object_array(new_array->AsObjectArray()); for (int32_t i = 0; i < array_length; i++) { - Array* sub_array = CreateMultiArray(sub_array_class, current_dimension, dimensions); - if (sub_array == NULL) { + SirtRef sub_array(CreateMultiArray(sub_array_class, current_dimension, dimensions)); + if (sub_array.get() == NULL) { CHECK(Thread::Current()->IsExceptionPending()); return NULL; } - object_array->Set(i, sub_array); + object_array->Set(i, sub_array.get()); } - return new_array; + return new_array.get(); } // Create a multi-dimensional array of Objects or primitive types. -- cgit v1.2.3-59-g8ed1b