diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2015-03-05 10:40:17 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2015-03-09 10:09:33 +0000 |
commit | 14691c5e786e8c2c5734f687e4c96217340771be (patch) | |
tree | 7c2156671b323c70ffdd1d48d5e2f1d1de79c5fc /runtime/quick_exception_handler.cc | |
parent | 3d7d2af4c6502b771b032ee9bf3ab30e78f9c60d (diff) | |
download | art-14691c5e786e8c2c5734f687e4c96217340771be.tar.gz art-14691c5e786e8c2c5734f687e4c96217340771be.tar.bz2 art-14691c5e786e8c2c5734f687e4c96217340771be.zip |
Compute the right catch location for the debugger.
Also remove tls ThrowLocation, it is not needed anymore.
Change-Id: I78fddf09ce968ca475e39c17fa76d699c589c8d9
Diffstat (limited to 'runtime/quick_exception_handler.cc')
-rw-r--r-- | runtime/quick_exception_handler.cc | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/runtime/quick_exception_handler.cc b/runtime/quick_exception_handler.cc index 1ddb761142..0eb8eca7d2 100644 --- a/runtime/quick_exception_handler.cc +++ b/runtime/quick_exception_handler.cc @@ -114,8 +114,7 @@ class CatchBlockStackVisitor FINAL : public StackVisitor { DISALLOW_COPY_AND_ASSIGN(CatchBlockStackVisitor); }; -void QuickExceptionHandler::FindCatch(const ThrowLocation& throw_location, - mirror::Throwable* exception) { +void QuickExceptionHandler::FindCatch(mirror::Throwable* exception) { DCHECK(!is_deoptimization_); if (kDebugExceptionDelivery) { mirror::String* msg = exception->GetDetailMessage(); @@ -145,15 +144,14 @@ void QuickExceptionHandler::FindCatch(const ThrowLocation& throw_location, DCHECK(!self_->IsExceptionPending()); } else { // Put exception back in root set with clear throw location. - self_->SetException(ThrowLocation(), exception_ref.Get()); + self_->SetException(exception_ref.Get()); } // The debugger may suspend this thread and walk its stack. Let's do this before popping // instrumentation frames. instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation(); if (instrumentation->HasExceptionCaughtListeners() && self_->IsExceptionThrownByCurrentMethod(exception)) { - instrumentation->ExceptionCaughtEvent(self_, throw_location, handler_method_, handler_dex_pc_, - exception_ref.Get()); + instrumentation->ExceptionCaughtEvent(self_, exception_ref.Get()); } } @@ -283,7 +281,7 @@ void QuickExceptionHandler::DeoptimizeStack() { visitor.WalkStack(true); // Restore deoptimization exception - self_->SetException(ThrowLocation(), Thread::GetDeoptimizationException()); + self_->SetException(Thread::GetDeoptimizationException()); } // Unwinds all instrumentation stack frame prior to catch handler or upcall. |