Chromium Code Reviews| Index: runtime/vm/isolate.cc |
| diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc |
| index b473061aadc884ff94fc990da3ccb0d03c245284..33fbc0468dcd660e6ebdac0524ea7c2f5162e8bd 100644 |
| --- a/runtime/vm/isolate.cc |
| +++ b/runtime/vm/isolate.cc |
| @@ -1945,14 +1945,15 @@ uword Isolate::FindPendingDeopt(uword fp) const { |
| return (*pending_deopts_)[i].pc(); |
| } |
| } |
| - FATAL("Missing pending deopt entry"); |
| + FATAL1("Missing pending deopt entry for fp=%" Pp "", fp); |
| return 0; |
| } |
| void Isolate::ClearPendingDeoptsAtOrBelow(uword fp) const { |
| for (intptr_t i = pending_deopts_->length() - 1; i >= 0; i--) { |
| - if ((*pending_deopts_)[i].fp() <= fp) { |
| + uword deopt_fp = (*pending_deopts_)[i].fp(); |
| + if (fp == deopt_fp || IsCalleeFrameOf(fp, deopt_fp)) { |
|
rmacnak
2017/03/09 20:31:59
(fp == deopt_fp)
|
| pending_deopts_->RemoveAt(i); |
| } |
| } |