From 16cfbe2e89d528eb09195b3959640d70efa83578 Mon Sep 17 00:00:00 2001 From: "andrew@webrtc.org" Date: Wed, 29 Aug 2012 16:58:25 +0000 Subject: [PATCH] Fix a potential Chrome crash in audioproc. There are Chrome crashes which appear to be occurring during some kind of teardown. We might be able to avoid them by locking in the destructor. On the other hand, this might have no impact, but at least isn't a bad thing to do. BUG=chromium:145341 Review URL: https://webrtc-codereview.appspot.com/768005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@2687 4adac7df-926f-26a2-2b94-8c16560cd09d --- src/modules/audio_processing/audio_processing_impl.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/modules/audio_processing/audio_processing_impl.cc b/src/modules/audio_processing/audio_processing_impl.cc index 74363eeaf9..ab5607a3d2 100644 --- a/src/modules/audio_processing/audio_processing_impl.cc +++ b/src/modules/audio_processing/audio_processing_impl.cc @@ -100,6 +100,7 @@ AudioProcessingImpl::AudioProcessingImpl(int id) } AudioProcessingImpl::~AudioProcessingImpl() { + crit_->Enter(); while (!component_list_.empty()) { ProcessingComponent* component = component_list_.front(); component->Destroy(); @@ -113,9 +114,6 @@ AudioProcessingImpl::~AudioProcessingImpl() { } #endif - delete crit_; - crit_ = NULL; - if (render_audio_) { delete render_audio_; render_audio_ = NULL; @@ -125,6 +123,10 @@ AudioProcessingImpl::~AudioProcessingImpl() { delete capture_audio_; capture_audio_ = NULL; } + + crit_->Leave(); + delete crit_; + crit_ = NULL; } CriticalSectionWrapper* AudioProcessingImpl::crit() const {