[Scummvm-cvs-logs] scummvm master -> 0a1f5dbd4ca2592badfcc775926ac3708eb17413

dreammaster dreammaster at scummvm.org
Sun Oct 11 22:20:30 CEST 2015


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
0a1f5dbd4c SHERLOCK: Fix memory leak playing music


Commit: 0a1f5dbd4ca2592badfcc775926ac3708eb17413
    https://github.com/scummvm/scummvm/commit/0a1f5dbd4ca2592badfcc775926ac3708eb17413
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2015-10-11T16:19:53-04:00

Commit Message:
SHERLOCK: Fix memory leak playing music

Changed paths:
    engines/sherlock/music.cpp
    engines/sherlock/music.h



diff --git a/engines/sherlock/music.cpp b/engines/sherlock/music.cpp
index 7ab5cd4..8b8f359 100644
--- a/engines/sherlock/music.cpp
+++ b/engines/sherlock/music.cpp
@@ -225,6 +225,7 @@ Music::Music(SherlockEngine *vm, Audio::Mixer *mixer) : _vm(vm), _mixer(mixer) {
 	_musicOn = false;
 	_midiOption = false;
 	_musicVolume = 0;
+	_midiMusicData = nullptr;
 
 	if (IS_3DO) {
 		// 3DO - uses digital samples for music
@@ -470,8 +471,8 @@ bool Music::playMusic(const Common::String &name) {
 			}
 		}
 
+		_midiMusicData = midiMusicData;
 		_midiParser->loadMusic(midiMusicData, midiMusicDataSize);
-
 	} else {
 		// 3DO: sample based
 		Audio::AudioStream *musicStream;
@@ -517,6 +518,8 @@ void Music::freeSong() {
 		_midiParser->unloadMusic();
 	}
 
+	delete[] _midiMusicData;
+	_midiMusicData = nullptr;
 	_musicPlaying = false;
 }
 
diff --git a/engines/sherlock/music.h b/engines/sherlock/music.h
index 72a5f48..186e2aa 100644
--- a/engines/sherlock/music.h
+++ b/engines/sherlock/music.h
@@ -68,6 +68,7 @@ private:
 	MidiDriver *_midiDriver;
 	Audio::SoundHandle _digitalMusicHandle;
 	MusicType _musicType;
+	byte *_midiMusicData;
 	
 	/**
 	 * Play the specified music resource






More information about the Scummvm-git-logs mailing list