summaryrefslogtreecommitdiff
path: root/src/java_lang_reflect_Array.cc
diff options
context:
space:
mode:
author Brian Carlstrom <bdc@google.com> 2011-10-19 14:13:40 -0700
committer Brian Carlstrom <bdc@google.com> 2011-10-20 12:19:25 -0700
commit40381fb9dc4b4cf274f1e58b2cdf4396202c6189 (patch)
tree8281b105d3e8a0850984f0ee182db01c33613f27 /src/java_lang_reflect_Array.cc
parentb06631143b944388fc68bedf6679c006dde5f461 (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.cc16
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.