[Scummvm-cvs-logs] SF.net SVN: scummvm:[47227] scummvm/trunk/engines/saga/music.cpp

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Sun Jan 10 16:23:36 CET 2010


Revision: 47227
          http://scummvm.svn.sourceforge.net/scummvm/?rev=47227&view=rev
Author:   lordhoto
Date:     2010-01-10 15:23:35 +0000 (Sun, 10 Jan 2010)

Log Message:
-----------
Fix a memory leak.

Modified Paths:
--------------
    scummvm/trunk/engines/saga/music.cpp

Modified: scummvm/trunk/engines/saga/music.cpp
===================================================================
--- scummvm/trunk/engines/saga/music.cpp	2010-01-10 15:20:14 UTC (rev 47226)
+++ scummvm/trunk/engines/saga/music.cpp	2010-01-10 15:23:35 UTC (rev 47227)
@@ -305,13 +305,10 @@
 				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 @@
 
 					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;
 			}
 		}
 	}


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list