return null for non-array classes in JVM_GetComponentType

This commit is contained in:
Joel Dice 2011-03-17 09:41:52 -06:00
parent 0922dd3429
commit 023e1d93d5

View File

@ -3500,14 +3500,18 @@ jvmGetComponentType(Thread* t, uintptr_t* arguments)
{ {
jclass c = reinterpret_cast<jobject>(arguments[0]); jclass c = reinterpret_cast<jobject>(arguments[0]);
uint8_t n = byteArrayBody(t, className(t, jclassVmClass(t, *c)), 1); if (classArrayDimensions(t, jclassVmClass(t, *c))) {
if (n != 'L' and n != '[') { uint8_t n = byteArrayBody(t, className(t, jclassVmClass(t, *c)), 1);
return reinterpret_cast<uintptr_t> if (n != 'L' and n != '[') {
(makeLocalReference(t, getJClass(t, primitiveClass(t, n)))); return reinterpret_cast<uintptr_t>
(makeLocalReference(t, getJClass(t, primitiveClass(t, n))));
} else {
return reinterpret_cast<uintptr_t>
(makeLocalReference
(t, getJClass(t, classStaticTable(t, jclassVmClass(t, *c)))));
}
} else { } else {
return reinterpret_cast<uintptr_t> return 0;
(makeLocalReference
(t, getJClass(t, classStaticTable(t, jclassVmClass(t, *c)))));
} }
} }