diff options
| author | 2011-10-19 14:13:40 -0700 | |
|---|---|---|
| committer | 2011-10-20 12:19:25 -0700 | |
| commit | 40381fb9dc4b4cf274f1e58b2cdf4396202c6189 (patch) | |
| tree | 8281b105d3e8a0850984f0ee182db01c33613f27 /src/java_lang_reflect_Array.cc | |
| parent | b06631143b944388fc68bedf6679c006dde5f461 (diff) | |
Reuse SIRT for C++ references
Change-Id: I8310e55da42f55f7ec60f6b17face436c77a979f
Diffstat (limited to 'src/java_lang_reflect_Array.cc')
| -rw-r--r-- | src/java_lang_reflect_Array.cc | 16 |
1 files changed, 8 insertions, 8 deletions
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<Array> 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<Array>* object_array = new_array->AsObjectArray<Array>(); + SirtRef<ObjectArray<Array> > object_array(new_array->AsObjectArray<Array>()); for (int32_t i = 0; i < array_length; i++) { - Array* sub_array = CreateMultiArray(sub_array_class, current_dimension, dimensions); - if (sub_array == NULL) { + SirtRef<Array> 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. |