diff options
| author | 2014-05-30 19:53:48 +0000 | |
|---|---|---|
| committer | 2014-05-30 19:53:48 +0000 | |
| commit | b413cd79c46b7c48ac763cb8152a55a4ed60fe9f (patch) | |
| tree | d4f09efe7ba5eb3891d26f3a8b1033b02bb72328 /runtime/quick_exception_handler.h | |
| parent | 22460ecbaae7e489a3bc17a2adb2e7e9d0028f9c (diff) | |
| parent | 5cf98196d488437acd1e989c08a554ef697fded1 (diff) | |
Merge "Don't report down-calls as unhandled exceptions."
Diffstat (limited to 'runtime/quick_exception_handler.h')
| -rw-r--r-- | runtime/quick_exception_handler.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/runtime/quick_exception_handler.h b/runtime/quick_exception_handler.h index 2597ebd5c7..a4229b33fc 100644 --- a/runtime/quick_exception_handler.h +++ b/runtime/quick_exception_handler.h @@ -32,9 +32,6 @@ class Thread; class ThrowLocation; class ShadowFrame; -static constexpr bool kDebugExceptionDelivery = false; -static constexpr size_t kInvalidFrameId = 0xffffffff; - // Manages exception delivery for Quick backend. Not used by Portable backend. class QuickExceptionHandler { public: @@ -59,6 +56,18 @@ class QuickExceptionHandler { handler_quick_frame_pc_ = handler_quick_frame_pc; } + mirror::ArtMethod* GetHandlerMethod() const { + return handler_method_; + } + + void SetHandlerMethod(mirror::ArtMethod* handler_quick_method) { + handler_method_ = handler_quick_method; + } + + uint32_t GetHandlerDexPc() const { + return handler_dex_pc_; + } + void SetHandlerDexPc(uint32_t dex_pc) { handler_dex_pc_ = dex_pc; } @@ -81,7 +90,9 @@ class QuickExceptionHandler { StackReference<mirror::ArtMethod>* handler_quick_frame_; // PC to branch to for the handler. uintptr_t handler_quick_frame_pc_; - // Associated dex PC. + // The handler method to report to the debugger. + mirror::ArtMethod* handler_method_; + // The handler's dex PC, zero implies an uncaught exception. uint32_t handler_dex_pc_; // Should the exception be cleared as the catch block has no move-exception? bool clear_exception_; |