diff options
Diffstat (limited to 'runtime/quick_exception_handler.cc')
-rw-r--r-- | runtime/quick_exception_handler.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/runtime/quick_exception_handler.cc b/runtime/quick_exception_handler.cc index 5f497af46a..ac5065b2a6 100644 --- a/runtime/quick_exception_handler.cc +++ b/runtime/quick_exception_handler.cc @@ -599,7 +599,10 @@ void QuickExceptionHandler::DeoptimizeSingleFrame(DeoptimizationKind kind) { << GetDeoptimizationKindName(kind); DumpFramesWithType(self_, /* details= */ true); } - if (Runtime::Current()->UseJitCompilation()) { + // When deoptimizing for debug support the optimized code is still valid and + // can be reused when debugging support (like breakpoints) are no longer + // needed fot this method. + if (Runtime::Current()->UseJitCompilation() && (kind != DeoptimizationKind::kDebugging)) { Runtime::Current()->GetJit()->GetCodeCache()->InvalidateCompiledCodeFor( deopt_method, visitor.GetSingleFrameDeoptQuickMethodHeader()); } else { |