summaryrefslogtreecommitdiff
path: root/compiler/optimizing/graph_visualizer.cc
diff options
context:
space:
mode:
authorSebastien Hertz <shertz@google.com>2015-08-20 12:07:57 +0200
committerSebastien Hertz <shertz@google.com>2015-08-25 15:13:49 +0200
commit54b62480636ae846d705fc180c7bd6cd08ec1e42 (patch)
treed46a6c7bebb45ddbbd5b0a6818b3bb2ce49f48ed /compiler/optimizing/graph_visualizer.cc
parentf0170ded84fbcd3d9152cdbcf9ffbf74c71b03ba (diff)
Fix deoptimization with pending exception
When deoptimizing the stack, we set a fake exception in the current Thread* (see method Thread::GetDeoptimizationException). On the next exception check, the QuickExceptionHandler will deoptimize the stack. The issue is when we deoptimize while an exception is already pending in the current Thread*: setting the fake exception will clobber the pending exception which is not correct. This happens in the artQuickToInterpreterBridge when returning from the interpreter and we want to deoptimize the stack for debugging (like single-stepping). This CL saves the pending exception before asking for deoptimization. Then the exception is restored just before executing the deoptimized frames with the interpreter. Also cleans up the way we save deoptimization context (return value and pending exception). Bug: 23371176 Bug: 19944235 Change-Id: I7f4c8347b328817c452beda3399e210eba3a88a4
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
0 files changed, 0 insertions, 0 deletions