diff options
| author | 2011-09-14 23:19:50 -0700 | |
|---|---|---|
| committer | 2011-09-14 23:19:50 -0700 | |
| commit | 367ce0b7b8241354ae484e7e041707464729b5cd (patch) | |
| tree | bf056843f75bb289f6a54d7b31e2e8c10495188b /src/compiler/codegen/arm/MethodCodegenDriver.cc | |
| parent | 43a364291dcdfe08e530e9568748359735dd7442 (diff) | |
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
Diffstat (limited to 'src/compiler/codegen/arm/MethodCodegenDriver.cc')
| -rw-r--r-- | src/compiler/codegen/arm/MethodCodegenDriver.cc | 4 | 
1 files changed, 2 insertions, 2 deletions
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);  |