diff options
author | Alyssa Milburn | 2011-02-07 13:36:59 +0000 |
---|---|---|
committer | Alyssa Milburn | 2011-02-07 13:36:59 +0000 |
commit | dda8266ec810d2e289e4d0f661078f60d69d9903 (patch) | |
tree | 588e6b5c9ec1ef303af16d89c3d56e153d9560c6 /video/smk_decoder.cpp | |
parent | 6f9ac84f77f140c8008ffec0e57fcf2ddd17a10e (diff) | |
download | scummvm-rg350-dda8266ec810d2e289e4d0f661078f60d69d9903.tar.gz scummvm-rg350-dda8266ec810d2e289e4d0f661078f60d69d9903.tar.bz2 scummvm-rg350-dda8266ec810d2e289e4d0f661078f60d69d9903.zip |
VIDEO: Fix a leak in the Smacker decoder.
If audio was not yet started when a video was closed, the audio
stream would be leaked.
svn-id: r55802
Diffstat (limited to 'video/smk_decoder.cpp')
-rw-r--r-- | video/smk_decoder.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/video/smk_decoder.cpp b/video/smk_decoder.cpp index 454bc6dde5..366c434b1b 100644 --- a/video/smk_decoder.cpp +++ b/video/smk_decoder.cpp @@ -494,10 +494,15 @@ void SmackerDecoder::close() { if (!_fileStream) return; - if (_audioStarted && _audioStream) { - _mixer->stopHandle(_audioHandle); + if (_audioStream) { + if (_audioStarted) { + // The mixer will delete the stream. + _mixer->stopHandle(_audioHandle); + _audioStarted = false; + } else { + delete _audioStream; + } _audioStream = 0; - _audioStarted = false; } delete _fileStream; |