Index: media/base/serial_runner.cc |
diff --git a/media/base/serial_runner.cc b/media/base/serial_runner.cc |
index 0af441a8a5bfd35cf091d5a56ed4ca639dd609fe..257cd910ae8a6e56ca1b9fdb5f56d6fd7c04c91b 100644 |
--- a/media/base/serial_runner.cc |
+++ b/media/base/serial_runner.cc |
@@ -54,17 +54,19 @@ bool SerialRunner::Queue::empty() { |
return bound_fns_.empty(); |
} |
-SerialRunner::SerialRunner( |
- const Queue& bound_fns, const PipelineStatusCB& done_cb) |
- : weak_this_(this), |
- task_runner_(base::MessageLoopProxy::current()), |
+SerialRunner::SerialRunner(const Queue& bound_fns, |
+ const PipelineStatusCB& done_cb) |
+ : task_runner_(base::MessageLoopProxy::current()), |
bound_fns_(bound_fns), |
- done_cb_(done_cb) { |
+ done_cb_(done_cb), |
+ weak_factory_(this) { |
// Respect both cancellation and calling stack guarantees for |done_cb| |
// when empty. |
if (bound_fns_.empty()) { |
- task_runner_->PostTask(FROM_HERE, base::Bind( |
- &SerialRunner::RunNextInSeries, weak_this_.GetWeakPtr(), PIPELINE_OK)); |
+ task_runner_->PostTask(FROM_HERE, |
+ base::Bind(&SerialRunner::RunNextInSeries, |
+ weak_factory_.GetWeakPtr(), |
+ PIPELINE_OK)); |
return; |
} |
@@ -90,8 +92,10 @@ void SerialRunner::RunNextInSeries(PipelineStatus last_status) { |
} |
BoundPipelineStatusCB bound_fn = bound_fns_.Pop(); |
- bound_fn.Run(base::Bind(&RunOnTaskRunner, task_runner_, base::Bind( |
- &SerialRunner::RunNextInSeries, weak_this_.GetWeakPtr()))); |
+ bound_fn.Run(base::Bind( |
+ &RunOnTaskRunner, |
+ task_runner_, |
+ base::Bind(&SerialRunner::RunNextInSeries, weak_factory_.GetWeakPtr()))); |
} |
} // namespace media |