Index: base/test/test_mock_time_task_runner.cc |
diff --git a/base/test/test_mock_time_task_runner.cc b/base/test/test_mock_time_task_runner.cc |
index 6dfecaf838ba8ee5e5b36f8d067e021e4d51f4c5..973c75f17e641fb32808b66c7683750670e3d5dd 100644 |
--- a/base/test/test_mock_time_task_runner.cc |
+++ b/base/test/test_mock_time_task_runner.cc |
@@ -77,13 +77,15 @@ Time MockClock::Now() { |
struct TestMockTimeTaskRunner::TestOrderedPendingTask |
: public base::TestPendingTask { |
TestOrderedPendingTask(); |
+ TestOrderedPendingTask(TestOrderedPendingTask&&) = default; |
TestOrderedPendingTask(const tracked_objects::Location& location, |
- const Closure& task, |
+ OnceClosure task, |
TimeTicks post_time, |
TimeDelta delay, |
size_t ordinal, |
TestNestability nestability); |
~TestOrderedPendingTask(); |
+ TestOrderedPendingTask& operator=(TestOrderedPendingTask&&) = default; |
size_t ordinal; |
}; |
@@ -94,14 +96,17 @@ TestMockTimeTaskRunner::TestOrderedPendingTask::TestOrderedPendingTask() |
TestMockTimeTaskRunner::TestOrderedPendingTask::TestOrderedPendingTask( |
const tracked_objects::Location& location, |
- const Closure& task, |
+ OnceClosure task, |
TimeTicks post_time, |
TimeDelta delay, |
size_t ordinal, |
TestNestability nestability) |
- : base::TestPendingTask(location, task, post_time, delay, nestability), |
- ordinal(ordinal) { |
-} |
+ : base::TestPendingTask(location, |
+ std::move(task), |
+ post_time, |
+ delay, |
+ nestability), |
+ ordinal(ordinal) {} |
TestMockTimeTaskRunner::TestOrderedPendingTask::~TestOrderedPendingTask() { |
} |
@@ -195,20 +200,20 @@ bool TestMockTimeTaskRunner::RunsTasksOnCurrentThread() const { |
bool TestMockTimeTaskRunner::PostDelayedTask( |
const tracked_objects::Location& from_here, |
- const Closure& task, |
+ OnceClosure task, |
TimeDelta delay) { |
AutoLock scoped_lock(tasks_lock_); |
- tasks_.push(TestOrderedPendingTask(from_here, task, now_ticks_, delay, |
- next_task_ordinal_++, |
+ tasks_.push(TestOrderedPendingTask(from_here, std::move(task), now_ticks_, |
+ delay, next_task_ordinal_++, |
TestPendingTask::NESTABLE)); |
return true; |
} |
bool TestMockTimeTaskRunner::PostNonNestableDelayedTask( |
const tracked_objects::Location& from_here, |
- const Closure& task, |
+ OnceClosure task, |
TimeDelta delay) { |
- return PostDelayedTask(from_here, task, delay); |
+ return PostDelayedTask(from_here, std::move(task), delay); |
} |
bool TestMockTimeTaskRunner::IsElapsingStopped() { |
@@ -239,7 +244,7 @@ void TestMockTimeTaskRunner::ProcessAllTasksNoLaterThan(TimeDelta max_delta) { |
// be less than |now_ticks_|. ForwardClocksUntilTickTime() takes care of not |
// moving the clock backwards in this case. |
ForwardClocksUntilTickTime(task_info.GetTimeToRun()); |
- task_info.task.Run(); |
+ std::move(task_info.task).Run(); |
OnAfterTaskRun(); |
} |
} |
@@ -259,7 +264,7 @@ bool TestMockTimeTaskRunner::DequeueNextTask(const TimeTicks& reference, |
AutoLock scoped_lock(tasks_lock_); |
if (!tasks_.empty() && |
(tasks_.top().GetTimeToRun() - reference) <= max_delta) { |
- *next_task = tasks_.top(); |
+ *next_task = std::move(const_cast<TestOrderedPendingTask&>(tasks_.top())); |
tasks_.pop(); |
return true; |
} |