Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(247)

Unified Diff: media/base/serial_runner.cc

Issue 193303002: WeakPtr destruction order cleanup: media edition. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698