diff options
| author | 2022-02-03 13:41:39 +0000 | |
|---|---|---|
| committer | 2022-02-03 17:36:27 +0000 | |
| commit | 933367326d031cc0c301798c141c440e725e57d5 (patch) | |
| tree | c8da99edd51c1fe393e64720cbed75a87dc07aa1 /runtime/interpreter/interpreter.cc | |
| parent | 2362c5afc49288fb68c249a0b73941402bb24d4d (diff) | |
Fix DCHECK related to frame pop events.
We have a DCHECK that we can only see a retry instruction only on the
second frame after deoptimization. Though we can only pop one frame at a
time, the frame pop event listener can request more such events. So the
expectation that we can see a forced pop only on the second frame isn't
correct.
Test: art/test.py
Bug: 206029744
Change-Id: I258e62861224facb6884d9df1a4cf5406209d731
Diffstat (limited to 'runtime/interpreter/interpreter.cc')
| -rw-r--r-- | runtime/interpreter/interpreter.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/runtime/interpreter/interpreter.cc b/runtime/interpreter/interpreter.cc index dc7e23ec06..b60a384ca5 100644 --- a/runtime/interpreter/interpreter.cc +++ b/runtime/interpreter/interpreter.cc @@ -491,7 +491,7 @@ void EnterInterpreterFromDeoptimize(Thread* self, const Instruction* instr = &accessor.InstructionAt(dex_pc); if (deopt_method_type == DeoptimizationMethodType::kKeepDexPc || shadow_frame->GetForceRetryInstruction()) { - DCHECK(frame_cnt == 0 || (frame_cnt == 1 && shadow_frame->GetForceRetryInstruction())) + DCHECK(frame_cnt == 0 || shadow_frame->GetForceRetryInstruction()) << "frame_cnt: " << frame_cnt << " force-retry: " << shadow_frame->GetForceRetryInstruction(); // Need to re-execute the dex instruction. |