Skip to content

Commit 77e6cdc

Browse files
alexmarkovCommit Queue
authored andcommitted
[dyn_modules] Handle interpreter frames during deoptimization
TEST=tools/test.py -n vm-dyn-linux-debug-x64 corelib/bigint_test Fixes b/406924438 Change-Id: I621c31af7754c629e577e39b2ee4102533fa1363 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/425341 Reviewed-by: Slava Egorov <[email protected]> Commit-Queue: Alexander Markov <[email protected]>
1 parent 7850078 commit 77e6cdc

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

runtime/vm/heap/weak_code.cc

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,13 @@ void WeakCodeReferences::DisableCode(bool are_mutators_stopped) {
6565
mutator_thread, StackFrameIterator::kAllowCrossThreadIteration);
6666
StackFrame* frame = iterator.NextFrame();
6767
while (frame != nullptr) {
68-
code = frame->LookupDartCode();
68+
if (!frame->is_interpreted()) {
69+
code = frame->LookupDartCode();
6970

70-
if (set.ContainsKey(code)) {
71-
ReportDeoptimization(code);
72-
DeoptimizeAt(mutator_thread, code, frame);
71+
if (set.ContainsKey(code)) {
72+
ReportDeoptimization(code);
73+
DeoptimizeAt(mutator_thread, code, frame);
74+
}
7375
}
7476
frame = iterator.NextFrame();
7577
}

0 commit comments

Comments
 (0)