[Scummvm-cvs-logs] SF.net SVN: scummvm: [22016] scummvm/trunk/engines/simon/sound.cpp

kirben at users.sourceforge.net kirben at users.sourceforge.net
Tue Apr 18 16:09:10 CEST 2006


Revision: 22016
Author:   kirben
Date:     2006-04-18 16:08:41 -0700 (Tue, 18 Apr 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=22016&view=rev

Log Message:
-----------
Fix sound memory leak in FF

Modified Paths:
--------------
    scummvm/trunk/engines/simon/sound.cpp
Modified: scummvm/trunk/engines/simon/sound.cpp
===================================================================
--- scummvm/trunk/engines/simon/sound.cpp	2006-04-18 19:52:12 UTC (rev 22015)
+++ scummvm/trunk/engines/simon/sound.cpp	2006-04-18 23:08:41 UTC (rev 22016)
@@ -136,11 +136,11 @@
 		error("playSound: Not a valid WAV file");
 	}
 
-	flags |= Audio::Mixer::FLAG_AUTOFREE | wavFlags;
+	flags |= wavFlags;
 
 	byte *buffer = (byte *)malloc(size);
 	_file->read(buffer, size);
-	_mixer->playRaw(handle, buffer, size, rate, flags);
+	_mixer->playRaw(handle, buffer, size, rate, flags | Audio::Mixer::FLAG_AUTOFREE);
 }
 
 void VocSound::playSound(uint sound, Audio::SoundHandle *handle, byte flags) {
@@ -151,7 +151,6 @@
 
 	int size, rate;
 	byte *buffer = loadVOCFromStream(*_file, size, rate);
-
 	_mixer->playRaw(handle, buffer, size, rate, flags | Audio::Mixer::FLAG_AUTOFREE);
 }
 
@@ -164,7 +163,6 @@
 	uint size = _file->readUint32BE();
 	byte *buffer = (byte *)malloc(size);
 	_file->read(buffer, size);
-
 	_mixer->playRaw(handle, buffer, size, 22050, flags | Audio::Mixer::FLAG_AUTOFREE);
 }
 
@@ -563,13 +561,12 @@
 		error("playSoundData: Not a valid WAV data");
 	}
 
-	byte *buffer = (byte *)malloc(size);
-	memcpy(buffer, soundData + stream.pos(), size);
-
 	if (loop == true)
 		flags |= Audio::Mixer::FLAG_LOOP;
 	
-	_mixer->playRaw(handle, buffer, size, rate, flags, sound);
+	byte *buffer = (byte *)malloc(size);
+	memcpy(buffer, soundData + stream.pos(), size);
+	_mixer->playRaw(handle, buffer, size, rate, flags | Audio::Mixer::FLAG_AUTOFREE);
 }
 
 void Sound::playVoiceData(byte *soundData, uint sound) {


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