Index: chrome/browser/after_startup_task_utils.cc |
diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_startup_task_utils.cc |
index c5c29e8b8cb599f7305a2df9b0a82abce8dd1e7c..24bf700bdf5a1800a09e8fed12203e36d1e332c2 100644 |
--- a/chrome/browser/after_startup_task_utils.cc |
+++ b/chrome/browser/after_startup_task_utils.cc |
@@ -7,6 +7,7 @@ |
#include <memory> |
#include <utility> |
+#include "base/callback_helpers.h" |
#include "base/lazy_instance.h" |
#include "base/macros.h" |
#include "base/memory/ptr_util.h" |
@@ -34,13 +35,13 @@ namespace { |
struct AfterStartupTask { |
AfterStartupTask(const tracked_objects::Location& from_here, |
const scoped_refptr<base::TaskRunner>& task_runner, |
- const base::Closure& task) |
- : from_here(from_here), task_runner(task_runner), task(task) {} |
+ base::Closure task) |
+ : from_here(from_here), task_runner(task_runner), task(std::move(task)) {} |
~AfterStartupTask() {} |
const tracked_objects::Location from_here; |
const scoped_refptr<base::TaskRunner> task_runner; |
- const base::Closure task; |
+ base::Closure task; |
}; |
// The flag may be read on any thread, but must only be set on the UI thread. |
@@ -60,7 +61,7 @@ bool IsBrowserStartupComplete() { |
void RunTask(std::unique_ptr<AfterStartupTask> queued_task) { |
// We're careful to delete the caller's |task| on the target runner's thread. |
DCHECK(queued_task->task_runner->RunsTasksOnCurrentThread()); |
- queued_task->task.Run(); |
+ std::move(queued_task->task).Run(); |
sky
2017/03/22 17:34:11
Similar comment about needing std::move here.
|
} |
void ScheduleTask(std::unique_ptr<AfterStartupTask> queued_task) { |
@@ -202,10 +203,11 @@ AfterStartupTaskUtils::Runner::~Runner() = default; |
bool AfterStartupTaskUtils::Runner::PostDelayedTask( |
const tracked_objects::Location& from_here, |
- const base::Closure& task, |
+ base::Closure task, |
base::TimeDelta delay) { |
DCHECK(delay.is_zero()); |
- AfterStartupTaskUtils::PostTask(from_here, destination_runner_, task); |
+ AfterStartupTaskUtils::PostTask(from_here, destination_runner_, |
+ std::move(task)); |
return true; |
} |
@@ -221,14 +223,14 @@ void AfterStartupTaskUtils::StartMonitoringStartup() { |
void AfterStartupTaskUtils::PostTask( |
const tracked_objects::Location& from_here, |
const scoped_refptr<base::TaskRunner>& destination_runner, |
- const base::Closure& task) { |
+ base::Closure task) { |
if (IsBrowserStartupComplete()) { |
- destination_runner->PostTask(from_here, task); |
+ destination_runner->PostTask(from_here, std::move(task)); |
return; |
} |
std::unique_ptr<AfterStartupTask> queued_task( |
- new AfterStartupTask(from_here, destination_runner, task)); |
+ new AfterStartupTask(from_here, destination_runner, std::move(task))); |
QueueTask(std::move(queued_task)); |
} |