diff options
-rw-r--r-- | chromium/base/task/sequence_manager/task_queue_impl.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/chromium/base/task/sequence_manager/task_queue_impl.cc b/chromium/base/task/sequence_manager/task_queue_impl.cc index b3a468c847e..6d97f7b1f32 100644 --- a/chromium/base/task/sequence_manager/task_queue_impl.cc +++ b/chromium/base/task/sequence_manager/task_queue_impl.cc @@ -1409,9 +1409,13 @@ void TaskQueueImpl::DelayedIncomingQueue::SweepCancelledTasks() { if (it->task.IsCancelled()) { if (it->is_high_res) pending_high_res_tasks_--; - *it = std::move(queue_.c.back()); + bool is_last_task_sequence = it->sequence_num == queue_.c.back().sequence_num; + if (!is_last_task_sequence) + *it = std::move(queue_.c.back()); queue_.c.pop_back(); task_deleted = true; + if (is_last_task_sequence) + break; } else { it++; } |