summaryrefslogtreecommitdiffstats
path: root/runtime/catch_block_stack_visitor.cc
diff options
context:
space:
mode:
authorIan Rogers <irogers@google.com>2014-05-29 16:55:06 -0700
committerIan Rogers <irogers@google.com>2014-05-29 16:55:06 -0700
commit822266b9dc7d8dc9e084192ae0f4bc95af4e8cf8 (patch)
tree6f9b2470d9f1bfa74bf53da3b3794ec8e6bf8d6f /runtime/catch_block_stack_visitor.cc
parent31e7fcb904f03a504f082d25814ac4644b5073e4 (diff)
downloadart-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.cc10
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);