diff options
| author | 2014-04-25 09:23:16 +0000 | |
|---|---|---|
| committer | 2014-04-25 09:23:17 +0000 | |
| commit | d55e9b1a9f45c19cd7b376a8839ce37f86c66a64 (patch) | |
| tree | 2b1fd06a6152cd561355d7049ca39aee6a8777f0 /runtime/mirror/art_method.cc | |
| parent | da6e4feb6a02fed7f307e1ef3b90e716a99ba24c (diff) | |
| parent | fd3077e4b9ebadd281777310d26e64443858f653 (diff) | |
Merge "Refactor exception handling for deoptimization"
Diffstat (limited to 'runtime/mirror/art_method.cc')
| -rw-r--r-- | runtime/mirror/art_method.cc | 6 |
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); } |