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

Unified Diff: media/filters/audio_renderer_impl.cc

Issue 193303002: WeakPtr destruction order cleanup: media edition. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. 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
« no previous file with comments | « media/filters/audio_renderer_impl.h ('k') | media/filters/decoder_selector.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/audio_renderer_impl.cc
diff --git a/media/filters/audio_renderer_impl.cc b/media/filters/audio_renderer_impl.cc
index 1da4d51b4fd38c6ae29a8dcdbe4d555f3f634dee..2dab6018b8982cc9ab31afa29a568ecdeddf47c4 100644
--- a/media/filters/audio_renderer_impl.cc
+++ b/media/filters/audio_renderer_impl.cc
@@ -43,7 +43,6 @@ AudioRendererImpl::AudioRendererImpl(
ScopedVector<AudioDecoder> decoders,
const SetDecryptorReadyCB& set_decryptor_ready_cb)
: task_runner_(task_runner),
- weak_factory_(this),
sink_(sink),
audio_buffer_stream_(task_runner,
decoders.Pass(),
@@ -57,7 +56,8 @@ AudioRendererImpl::AudioRendererImpl(
audio_time_buffered_(kNoTimestamp()),
current_time_(kNoTimestamp()),
underflow_disabled_(false),
- preroll_aborted_(false) {}
+ preroll_aborted_(false),
+ weak_factory_(this) {}
AudioRendererImpl::~AudioRendererImpl() {
// Stop() should have been called and |algorithm_| should have been destroyed.
@@ -146,8 +146,8 @@ void AudioRendererImpl::DoFlush_Locked() {
DCHECK(!pending_read_);
DCHECK_EQ(state_, kPaused);
- audio_buffer_stream_.Reset(
- base::Bind(&AudioRendererImpl::ResetDecoderDone, weak_this_));
+ audio_buffer_stream_.Reset(base::Bind(&AudioRendererImpl::ResetDecoderDone,
+ weak_factory_.GetWeakPtr()));
}
void AudioRendererImpl::ResetDecoderDone() {
@@ -243,7 +243,6 @@ void AudioRendererImpl::Initialize(DemuxerStream* stream,
state_ = kInitializing;
- weak_this_ = weak_factory_.GetWeakPtr();
init_cb_ = init_cb;
underflow_cb_ = underflow_cb;
time_cb_ = time_cb;
@@ -255,7 +254,7 @@ void AudioRendererImpl::Initialize(DemuxerStream* stream,
stream,
statistics_cb,
base::Bind(&AudioRendererImpl::OnAudioBufferStreamInitialized,
- weak_this_));
+ weak_factory_.GetWeakPtr()));
}
void AudioRendererImpl::OnAudioBufferStreamInitialized(bool success) {
@@ -307,7 +306,7 @@ void AudioRendererImpl::OnAudioBufferStreamInitialized(bool success) {
{
base::AutoUnlock auto_unlock(lock_);
- sink_->Initialize(audio_parameters_, weak_this_.get());
+ sink_->Initialize(audio_parameters_, this);
sink_->Start();
// Some sinks play on start...
@@ -472,8 +471,8 @@ void AudioRendererImpl::AttemptRead_Locked() {
return;
pending_read_ = true;
- audio_buffer_stream_.Read(
- base::Bind(&AudioRendererImpl::DecodedAudioReady, weak_this_));
+ audio_buffer_stream_.Read(base::Bind(&AudioRendererImpl::DecodedAudioReady,
+ weak_factory_.GetWeakPtr()));
}
bool AudioRendererImpl::CanRead_Locked() {
@@ -585,8 +584,9 @@ int AudioRendererImpl::Render(AudioBus* audio_bus,
}
if (CanRead_Locked()) {
- task_runner_->PostTask(FROM_HERE, base::Bind(
- &AudioRendererImpl::AttemptRead, weak_this_));
+ task_runner_->PostTask(FROM_HERE,
+ base::Bind(&AudioRendererImpl::AttemptRead,
+ weak_factory_.GetWeakPtr()));
}
// The |audio_time_buffered_| is the ending timestamp of the last frame
« no previous file with comments | « media/filters/audio_renderer_impl.h ('k') | media/filters/decoder_selector.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698