From 367ce0b7b8241354ae484e7e041707464729b5cd Mon Sep 17 00:00:00 2001 From: buzbee Date: Wed, 14 Sep 2011 23:19:50 -0700 Subject: Fix invoke-interface bug. genInvokeInterface relies on the helper routine to do its null check of "this", so it must load it as part of the regular argument loading sequence. Previously, that was being ommitted. Change-Id: I99b325c2c2a284c2bfe6b48839ea561199b66b55 --- src/compiler/codegen/arm/MethodCodegenDriver.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/compiler/codegen/arm/MethodCodegenDriver.cc') diff --git a/src/compiler/codegen/arm/MethodCodegenDriver.cc b/src/compiler/codegen/arm/MethodCodegenDriver.cc index 7196efc4fe..b8045e22a8 100644 --- a/src/compiler/codegen/arm/MethodCodegenDriver.cc +++ b/src/compiler/codegen/arm/MethodCodegenDriver.cc @@ -932,10 +932,10 @@ static void genInvokeInterface(CompilationUnit* cUnit, MIR* mir) if (mir->dalvikInsn.opcode == OP_INVOKE_INTERFACE) callState = genDalvikArgsNoRange(cUnit, mir, dInsn, callState, &nullCk, false, nextInterfaceCallInsn, NULL, - true); + false); else callState = genDalvikArgsRange(cUnit, mir, dInsn, callState, &nullCk, - nextInterfaceCallInsn, NULL, true); + nextInterfaceCallInsn, NULL, false); // Finish up any of the call sequence not interleaved in arg loading while (callState >= 0) { callState = nextInterfaceCallInsn(cUnit, mir, dInsn, callState, NULL); -- cgit v1.2.3-59-g8ed1b