diff options
author | dalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-23 00:54:59 +0000 |
---|---|---|
committer | dalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-23 00:54:59 +0000 |
commit | a3c4f9da509e02874b46afaadf8140bc20b9e4f6 (patch) | |
tree | 8196a9707df6b229e2a8df73cfe625cee44ac1b7 /media/audio/win/wavein_input_win.cc | |
parent | c4f5c6ad659e7f221371d32584fbb54e9276ac68 (diff) | |
download | chromium_src-a3c4f9da509e02874b46afaadf8140bc20b9e4f6.zip chromium_src-a3c4f9da509e02874b46afaadf8140bc20b9e4f6.tar.gz chromium_src-a3c4f9da509e02874b46afaadf8140bc20b9e4f6.tar.bz2 |
Fix buffer leak in Wave In/Out implementation.
|waveout_| and |wavein_| are NULL when we call FreeBuffers() in their
respective implementations, which means the unprepareheader calls never
succeed.
BUG=145725
TEST=none
Review URL: https://chromiumcodereview.appspot.com/12330063
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184238 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/audio/win/wavein_input_win.cc')
-rw-r--r-- | media/audio/win/wavein_input_win.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/media/audio/win/wavein_input_win.cc b/media/audio/win/wavein_input_win.cc index aa0b659..924768c 100644 --- a/media/audio/win/wavein_input_win.cc +++ b/media/audio/win/wavein_input_win.cc @@ -183,7 +183,9 @@ void PCMWaveInAudioInputStream::Close() { Stop(); if (wavein_) { - // waveInClose() generates a WIM_CLOSE callback. In case start was never + FreeBuffers(); + + // waveInClose() generates a WIM_CLOSE callback. In case Start() was never // called, force a reset to ensure close succeeds. MMRESULT res = ::waveInReset(wavein_); DCHECK_EQ(res, static_cast<MMRESULT>(MMSYSERR_NOERROR)); @@ -191,7 +193,6 @@ void PCMWaveInAudioInputStream::Close() { DCHECK_EQ(res, static_cast<MMRESULT>(MMSYSERR_NOERROR)); state_ = kStateClosed; wavein_ = NULL; - FreeBuffers(); } // Tell the audio manager that we have been released. This can result in |