diff options
author | Ian Rogers <irogers@google.com> | 2014-05-29 16:55:06 -0700 |
---|---|---|
committer | Ian Rogers <irogers@google.com> | 2014-05-29 16:55:06 -0700 |
commit | 822266b9dc7d8dc9e084192ae0f4bc95af4e8cf8 (patch) | |
tree | 6f9b2470d9f1bfa74bf53da3b3794ec8e6bf8d6f /runtime/interpreter/interpreter_common.h | |
parent | 31e7fcb904f03a504f082d25814ac4644b5073e4 (diff) | |
download | art-822266b9dc7d8dc9e084192ae0f4bc95af4e8cf8.zip art-822266b9dc7d8dc9e084192ae0f4bc95af4e8cf8.tar.gz art-822266b9dc7d8dc9e084192ae0f4bc95af4e8cf8.tar.bz2 |
Ignore catch blocks whose type can't be resolved.
Reverts change 72b3e430d880ef57eaa6a34a0822165994052202 but keeps unit test and
missing delete that would fail assertions on long jump context recycling.
Change-Id: I926755e8b831b208aa7e1ce46421bef3793a1441
Diffstat (limited to 'runtime/interpreter/interpreter_common.h')
-rw-r--r-- | runtime/interpreter/interpreter_common.h | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/runtime/interpreter/interpreter_common.h b/runtime/interpreter/interpreter_common.h index cfc90a6..f69fecc 100644 --- a/runtime/interpreter/interpreter_common.h +++ b/runtime/interpreter/interpreter_common.h @@ -587,16 +587,10 @@ static inline uint32_t FindNextInstructionFollowingException(Thread* self, ThrowLocation throw_location; mirror::Throwable* exception = self->GetException(&throw_location); bool clear_exception = false; - bool new_exception = false; StackHandleScope<3> hs(self); Handle<mirror::Class> exception_class(hs.NewHandle(exception->GetClass())); uint32_t found_dex_pc = shadow_frame.GetMethod()->FindCatchBlock(exception_class, dex_pc, - &clear_exception, - &new_exception); - if (UNLIKELY(new_exception)) { - // Update the exception. - exception = self->GetException(&throw_location); - } + &clear_exception); if (found_dex_pc == DexFile::kDexNoIndex) { instrumentation->MethodUnwindEvent(self, this_object, shadow_frame.GetMethod(), dex_pc); |