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/catch_block_stack_visitor.cc | |
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/catch_block_stack_visitor.cc')
-rw-r--r-- | runtime/catch_block_stack_visitor.cc | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/runtime/catch_block_stack_visitor.cc b/runtime/catch_block_stack_visitor.cc index 55b330a..b820276 100644 --- a/runtime/catch_block_stack_visitor.cc +++ b/runtime/catch_block_stack_visitor.cc @@ -50,17 +50,9 @@ bool CatchBlockStackVisitor::HandleTryItems(mirror::ArtMethod* method) { } if (dex_pc != DexFile::kDexNoIndex) { bool clear_exception = false; - bool exc_changed = false; StackHandleScope<1> hs(Thread::Current()); Handle<mirror::Class> to_find(hs.NewHandle((*exception_)->GetClass())); - uint32_t found_dex_pc = method->FindCatchBlock(to_find, dex_pc, &clear_exception, - &exc_changed); - if (UNLIKELY(exc_changed)) { - DCHECK_EQ(DexFile::kDexNoIndex, found_dex_pc); - exception_->Assign(self_->GetException(nullptr)); // TODO: Throw location? - // There is a new context installed, delete it. - delete self_->GetLongJumpContext(); - } + uint32_t found_dex_pc = method->FindCatchBlock(to_find, dex_pc, &clear_exception); exception_handler_->SetClearException(clear_exception); if (found_dex_pc != DexFile::kDexNoIndex) { exception_handler_->SetHandlerDexPc(found_dex_pc); |