Index: content/renderer/media/webrtc_audio_device_impl.cc |
diff --git a/content/renderer/media/webrtc_audio_device_impl.cc b/content/renderer/media/webrtc_audio_device_impl.cc |
index e65ca33607c39abedb1e600fb9e10f2148df403b..cf4a6448350668ec20a8d35cae57dd9bc83e15bf 100644 |
--- a/content/renderer/media/webrtc_audio_device_impl.cc |
+++ b/content/renderer/media/webrtc_audio_device_impl.cc |
@@ -259,8 +259,11 @@ int32_t WebRtcAudioDeviceImpl::Terminate() { |
// It is necessary to stop the |renderer_| before going away. |
if (renderer_) { |
- renderer_->Stop(); |
- renderer_ = NULL; |
+ // Grab a local reference while we call Stop(), which will trigger a call to |
+ // RemoveAudioRenderer that clears our reference to the audio renderer. |
+ scoped_refptr<WebRtcAudioRenderer> local_renderer(renderer_); |
+ local_renderer->Stop(); |
+ DCHECK(!renderer_); |
} |
if (capturer_) { |