Fix the find_catch_block bug in runtime_support_llvm.
Change-Id: I5de06a0103ab37cf457ba9e02890d299e5c1e350
diff --git a/src/compiler_llvm/runtime_support_llvm.cc b/src/compiler_llvm/runtime_support_llvm.cc
index d929d3d..3d2b84a 100644
--- a/src/compiler_llvm/runtime_support_llvm.cc
+++ b/src/compiler_llvm/runtime_support_llvm.cc
@@ -125,9 +125,9 @@
thread->SetException(static_cast<Throwable*>(exception));
}
-int32_t art_find_catch_block_from_code(Object* exception, int32_t dex_pc) {
- Class* exception_type = exception->GetClass();
- Method* current_method = Thread::Current()->GetCurrentMethod();
+int32_t art_find_catch_block_from_code(Method* current_method, int32_t dex_pc) {
+ Thread* thread = Thread::Current();
+ Class* exception_type = thread->GetException()->GetClass();
MethodHelper mh(current_method);
const DexFile::CodeItem* code_item = mh.GetCodeItem();
int iter_index = 0;
diff --git a/src/compiler_llvm/runtime_support_llvm.h b/src/compiler_llvm/runtime_support_llvm.h
index fb951ba..f0e0a58 100644
--- a/src/compiler_llvm/runtime_support_llvm.h
+++ b/src/compiler_llvm/runtime_support_llvm.h
@@ -46,7 +46,7 @@
void art_throw_exception_from_code(Object* exception);
-int32_t art_find_catch_block_from_code(Object* exception, int32_t dex_pc);
+int32_t art_find_catch_block_from_code(Method* current_method, int32_t dex_pc);
void art_test_suspend_from_code();