summaryrefslogtreecommitdiff
path: root/runtime/mirror/art_method.cc
diff options
context:
space:
mode:
author Sebastien Hertz <shertz@google.com> 2014-04-25 09:23:16 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2014-04-25 09:23:17 +0000
commitd55e9b1a9f45c19cd7b376a8839ce37f86c66a64 (patch)
tree2b1fd06a6152cd561355d7049ca39aee6a8777f0 /runtime/mirror/art_method.cc
parentda6e4feb6a02fed7f307e1ef3b90e716a99ba24c (diff)
parentfd3077e4b9ebadd281777310d26e64443858f653 (diff)
Merge "Refactor exception handling for deoptimization"
Diffstat (limited to 'runtime/mirror/art_method.cc')
-rw-r--r--runtime/mirror/art_method.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/runtime/mirror/art_method.cc b/runtime/mirror/art_method.cc
index f3303a8267..726004bfee 100644
--- a/runtime/mirror/art_method.cc
+++ b/runtime/mirror/art_method.cc
@@ -315,13 +315,13 @@ void ArtMethod::Invoke(Thread* self, uint32_t* args, uint32_t args_size, JValue*
} else {
(*art_portable_invoke_stub)(this, args, args_size, self, result, shorty[0]);
}
- if (UNLIKELY(reinterpret_cast<intptr_t>(self->GetException(NULL)) == -1)) {
- // Unusual case where we were running LLVM generated code and an
+ if (UNLIKELY(self->GetException(nullptr) == Thread::GetDeoptimizationException())) {
+ // Unusual case where we were running generated code and an
// exception was thrown to force the activations to be removed from the
// stack. Continue execution in the interpreter.
self->ClearException();
ShadowFrame* shadow_frame = self->GetAndClearDeoptimizationShadowFrame(result);
- self->SetTopOfStack(NULL, 0);
+ self->SetTopOfStack(nullptr, 0);
self->SetTopOfShadowStack(shadow_frame);
interpreter::EnterInterpreterFromDeoptimize(self, shadow_frame, result);
}