summaryrefslogtreecommitdiffstats
path: root/runtime/interpreter/interpreter_common.h
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/interpreter/interpreter_common.h
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/interpreter/interpreter_common.h')
-rw-r--r--runtime/interpreter/interpreter_common.h8
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);