Skip to content

Commit

Permalink
SHERLOCK: Fix memory leak playing music
Browse files Browse the repository at this point in the history
  • Loading branch information
dreammaster committed Oct 11, 2015
1 parent ac24e87 commit 0a1f5db
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
5 changes: 4 additions & 1 deletion engines/sherlock/music.cpp
Expand Up @@ -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
Expand Down Expand Up @@ -470,8 +471,8 @@ bool Music::playMusic(const Common::String &name) {
}
}

_midiMusicData = midiMusicData;
_midiParser->loadMusic(midiMusicData, midiMusicDataSize);

} else {
// 3DO: sample based
Audio::AudioStream *musicStream;
Expand Down Expand Up @@ -517,6 +518,8 @@ void Music::freeSong() {
_midiParser->unloadMusic();
}

delete[] _midiMusicData;
_midiMusicData = nullptr;
_musicPlaying = false;
}

Expand Down
1 change: 1 addition & 0 deletions engines/sherlock/music.h
Expand Up @@ -68,6 +68,7 @@ class Music {
MidiDriver *_midiDriver;
Audio::SoundHandle _digitalMusicHandle;
MusicType _musicType;
byte *_midiMusicData;

/**
* Play the specified music resource
Expand Down

0 comments on commit 0a1f5db

Please sign in to comment.