diff options
author | Johannes Schickel | 2010-01-10 15:23:35 +0000 |
---|---|---|
committer | Johannes Schickel | 2010-01-10 15:23:35 +0000 |
commit | 0447a7f9f8850d209c5820fa7ee5350b54d96f76 (patch) | |
tree | 3175bb742e2d51fcd1713f2a7eb974c1ff882104 /engines | |
parent | 6ca0570fe3bb3f3765677ff8cd3f9e0cbf062d6b (diff) | |
download | scummvm-rg350-0447a7f9f8850d209c5820fa7ee5350b54d96f76.tar.gz scummvm-rg350-0447a7f9f8850d209c5820fa7ee5350b54d96f76.tar.bz2 scummvm-rg350-0447a7f9f8850d209c5820fa7ee5350b54d96f76.zip |
Fix a memory leak.
svn-id: r47227
Diffstat (limited to 'engines')
-rw-r--r-- | engines/saga/music.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/engines/saga/music.cpp b/engines/saga/music.cpp index 7fe8c0dbb2..52befa3dd3 100644 --- a/engines/saga/music.cpp +++ b/engines/saga/music.cpp @@ -305,13 +305,10 @@ void Music::play(uint32 resourceId, MusicFlags flags) { if (!_digitalMusicContext->isCompressed()) { byte musicFlags = Audio::Mixer::FLAG_AUTOFREE | Audio::Mixer::FLAG_STEREO | Audio::Mixer::FLAG_16BITS | Audio::Mixer::FLAG_LITTLE_ENDIAN; - if (flags == MUSIC_LOOP) - musicFlags |= Audio::Mixer::FLAG_LOOP; - Audio::LinearDiskStreamAudioBlock audioBlocks[1]; audioBlocks[0].pos = 0; audioBlocks[0].len = resData->size / 2; // 16-bit sound - audioStream = Audio::makeLinearDiskStream(musicStream, audioBlocks, 1, 11025, musicFlags, false); + audioStream = Audio::makeLinearDiskStream(musicStream, audioBlocks, 1, 11025, musicFlags, true); } else { // Read compressed header to determine compression type musicFile->seek((uint32)resData->offset, SEEK_SET); @@ -319,18 +316,21 @@ void Music::play(uint32 resourceId, MusicFlags flags) { if (identifier == 0) { // MP3 #ifdef USE_MAD - audioStream = Audio::makeMP3Stream(musicStream, false); + audioStream = Audio::makeMP3Stream(musicStream, true); #endif } else if (identifier == 1) { // OGG #ifdef USE_VORBIS - audioStream = Audio::makeVorbisStream(musicStream, false); + audioStream = Audio::makeVorbisStream(musicStream, true); #endif } else if (identifier == 2) { // FLAC #ifdef USE_FLAC - audioStream = Audio::makeFlacStream(musicStream, false); + audioStream = Audio::makeFlacStream(musicStream, true); #endif } } + + if (!audioStream) + delete musicStream; } } } |