summaryrefslogtreecommitdiff
path: root/disassembler/disassembler_arm.cc
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2014-04-03 15:25:30 -0700
committerMathieu Chartier <mathieuc@google.com>2014-04-03 16:34:46 -0700
commit5f3ded46a1da26f6a51cad16d421ca2fdc0f23ad (patch)
treee5d44213563093b8435dc1fc025b5114a93ab189 /disassembler/disassembler_arm.cc
parent0537c5ea92a4fb60a04024cc2b7247f08a3d9096 (diff)
Restore the args in the invoke trampoline slow paths.
Previously, there were errors caused by not restoring the args for the slow path in artInvokeInterfaceTrampoline and artInvokeCommon. The slow path in artInvokeInterfaceTrampoline occurs when you attempt to do an interface dispatch of a method in another dex file. The slow path in artInvokeCommon occurs when the method in dex cache is not already resolved. Since FindMethodFromCode may resolve a method, it can occasionally cause thread suspension/GC. If a moving GC occurred at this point it resulted in this_object being invalid after the trampoline returned the code pointer. This caused a native crash in one of the money runs since there was an unbundeled app which did a List.iterator call. Bug: 12934910 Change-Id: Ib454faad14bef0d7732a6d7f1ca5803472d502a6
Diffstat (limited to 'disassembler/disassembler_arm.cc')
0 files changed, 0 insertions, 0 deletions