Index: net/quic/test_tools/test_task_runner.cc |
diff --git a/net/quic/test_tools/test_task_runner.cc b/net/quic/test_tools/test_task_runner.cc |
index 5e6e647d9c7f98895cb35a41e6507f34f21c871c..3d427710e8f4ce18c7148683d4a72ef6a5f58480 100644 |
--- a/net/quic/test_tools/test_task_runner.cc |
+++ b/net/quic/test_tools/test_task_runner.cc |
@@ -20,8 +20,9 @@ bool TestTaskRunner::PostDelayedTask(const tracked_objects::Location& from_here, |
const base::Closure& task, |
base::TimeDelta delay) { |
EXPECT_GE(delay, base::TimeDelta()); |
- tasks_.push_back(PostedTask(from_here, task, clock_->NowInTicks(), delay, |
- base::TestPendingTask::NESTABLE)); |
+ base::TestPendingTaskInfo task_info(from_here, clock_->NowInTicks(), delay, |
+ base::TestPendingTaskInfo::NESTABLE); |
+ tasks_.push_back(std::make_pair(task_info, task)); |
return false; |
} |
@@ -38,18 +39,20 @@ void TestTaskRunner::RunNextTask() { |
// and then run the task. |
std::vector<PostedTask>::iterator next = FindNextTask(); |
DCHECK(next != tasks_.end()); |
+ |
+ const base::TestPendingTaskInfo& task_info = next->first; |
clock_->AdvanceTime(QuicTime::Delta::FromMicroseconds( |
- (next->GetTimeToRun() - clock_->NowInTicks()).InMicroseconds())); |
- PostedTask task = *next; |
+ (task_info.GetTimeToRun() - clock_->NowInTicks()).InMicroseconds())); |
+ base::OnceClosure task = std::move(next->second); |
tasks_.erase(next); |
- task.task.Run(); |
+ std::move(task).Run(); |
} |
namespace { |
struct ShouldRunBeforeLessThan { |
bool operator()(const PostedTask& task1, const PostedTask& task2) const { |
- return task1.ShouldRunBefore(task2); |
+ return task1.first.ShouldRunBefore(task2.first); |
} |
}; |