diff options
author | Filippos Karapetis | 2007-08-22 12:20:21 +0000 |
---|---|---|
committer | Filippos Karapetis | 2007-08-22 12:20:21 +0000 |
commit | 532c8c4230f6e9dcea58642094b893da0f0f75a5 (patch) | |
tree | 348acf3fce6ae375c347f5be08e40bd01306c64c | |
parent | 02e0d144e8564401fa5797978e91a2494d42ea79 (diff) | |
download | scummvm-rg350-532c8c4230f6e9dcea58642094b893da0f0f75a5.tar.gz scummvm-rg350-532c8c4230f6e9dcea58642094b893da0f0f75a5.tar.bz2 scummvm-rg350-532c8c4230f6e9dcea58642094b893da0f0f75a5.zip |
Detach the player callback handler when the music is being unloaded. Fixes bug #1734416 - "AUDIO: ITE: Random crashes with the MIDI parser"
svn-id: r28696
-rw-r--r-- | sound/midiparser.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/midiparser.cpp b/sound/midiparser.cpp index 7d09f4ec0d..2528399994 100644 --- a/sound/midiparser.cpp +++ b/sound/midiparser.cpp @@ -407,6 +407,11 @@ bool MidiParser::jumpToTick(uint32 tick, bool fireEvents) { } void MidiParser::unloadMusic() { + if (_driver) { + // Detach the player callback handler, to prevent it from + // being called while the music is being unloaded + _driver->setTimerCallback(NULL, NULL); + } resetTracking(); allNotesOff(); _num_tracks = 0; |