diff -r fc91c4a3dfe2 -r a85a0303bcb8 src/BytecodeEmitter.h --- a/src/BytecodeEmitter.h Sat Aug 04 23:58:23 2012 -0700 +++ b/src/BytecodeEmitter.h Sun Aug 05 00:31:20 2012 -0700 @@ -366,6 +366,12 @@ } void getarray(Type *type) { + if (type->isTraceable()) { + singleByteOp(OP_GETARRAY_O); + markOop(1); + return; + } + switch (type->pod()) { case PrimitiveType_Float: singleByteOp(OP_GETARRAY_F); @@ -447,10 +453,6 @@ writeUint32(var->slot()); } - void getarray_o() { - singleByteOp(OP_GETARRAY_O); - markOop(1); - } void bounds() { singleByteOp(OP_BOUNDS); markOop(2);