summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--vm/native/dalvik_system_VMRuntime.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/vm/native/dalvik_system_VMRuntime.cpp b/vm/native/dalvik_system_VMRuntime.cpp
index 8d849915e..b704e3e36 100644
--- a/vm/native/dalvik_system_VMRuntime.cpp
+++ b/vm/native/dalvik_system_VMRuntime.cpp
@@ -97,7 +97,6 @@ static void Dalvik_dalvik_system_VMRuntime_newNonMovableArray(const u4* args,
{
ClassObject* elementClass = (ClassObject*) args[1];
int length = args[2];
- ArrayObject* newArray;
if (elementClass == NULL) {
dvmThrowNullPointerException(NULL);
@@ -111,7 +110,10 @@ static void Dalvik_dalvik_system_VMRuntime_newNonMovableArray(const u4* args,
// TODO: right now, we don't have a copying collector, so there's no need
// to do anything special here, but we ought to pass the non-movability
// through to the allocator.
- newArray = dvmAllocObjectArray(elementClass, length, ALLOC_DEFAULT);
+ ClassObject* arrayClass = dvmFindArrayClassForElement(elementClass);
+ ArrayObject* newArray = dvmAllocArrayByClass(arrayClass,
+ length,
+ ALLOC_DEFAULT);
if (newArray == NULL) {
assert(dvmCheckException(dvmThreadSelf()));
RETURN_VOID();