summaryrefslogtreecommitdiffstats
path: root/media/blink
diff options
context:
space:
mode:
authordmichael <dmichael@chromium.org>2014-12-09 12:02:47 -0800
committerCommit bot <commit-bot@chromium.org>2014-12-09 20:03:17 +0000
commit284c5e97e4d17fa5c378b0f26117d1cea2fd65cc (patch)
treead7d46990ffb80d5265fc8beb39cf6cadebb4bfc /media/blink
parentda4bb3f6153553754222f1b1f46c573a3c29aeff (diff)
downloadchromium_src-284c5e97e4d17fa5c378b0f26117d1cea2fd65cc.zip
chromium_src-284c5e97e4d17fa5c378b0f26117d1cea2fd65cc.tar.gz
chromium_src-284c5e97e4d17fa5c378b0f26117d1cea2fd65cc.tar.bz2
Fix WeakPtrFactory ordering in media
A lot of these followed the pattern of listing WeakPtr last, which isn't bad, but destructing WeakPtrFactory first invalidates *all* WeakPtrs it has vended. And doing this consistently will allow us to turn on a Clang checker (see the bug for more info). BUG=303818 R=xhwang@chromium.org Review URL: https://codereview.chromium.org/791633004 Cr-Commit-Position: refs/heads/master@{#307529}
Diffstat (limited to 'media/blink')
-rw-r--r--media/blink/buffered_data_source.cc4
-rw-r--r--media/blink/buffered_data_source.h6
2 files changed, 4 insertions, 6 deletions
diff --git a/media/blink/buffered_data_source.cc b/media/blink/buffered_data_source.cc
index be8d0f2..e3e12e0 100644
--- a/media/blink/buffered_data_source.cc
+++ b/media/blink/buffered_data_source.cc
@@ -104,8 +104,8 @@ BufferedDataSource::BufferedDataSource(
media_log_(media_log),
host_(host),
downloading_cb_(downloading_cb),
- weak_factory_(this),
- weak_ptr_(weak_factory_.GetWeakPtr()) {
+ weak_factory_(this) {
+ weak_ptr_ = weak_factory_.GetWeakPtr();
DCHECK(host_);
DCHECK(!downloading_cb_.is_null());
DCHECK(render_task_runner_->BelongsToCurrentThread());
diff --git a/media/blink/buffered_data_source.h b/media/blink/buffered_data_source.h
index 2179867..b047c19 100644
--- a/media/blink/buffered_data_source.h
+++ b/media/blink/buffered_data_source.h
@@ -232,13 +232,11 @@ class MEDIA_EXPORT BufferedDataSource : public DataSource {
DownloadingCB downloading_cb_;
- // NOTE: Weak pointers must be invalidated before all other member variables.
- base::WeakPtrFactory<BufferedDataSource> weak_factory_;
-
// Disallow rebinding WeakReference ownership to a different thread by keeping
// a persistent reference. This avoids problems with the thread-safety of
// reaching into this class from multiple threads to attain a WeakPtr.
- const base::WeakPtr<BufferedDataSource> weak_ptr_;
+ base::WeakPtr<BufferedDataSource> weak_ptr_;
+ base::WeakPtrFactory<BufferedDataSource> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(BufferedDataSource);
};