aboutsummaryrefslogtreecommitdiff
path: root/simon
diff options
context:
space:
mode:
authorTorbjörn Andersson2004-09-08 09:24:18 +0000
committerTorbjörn Andersson2004-09-08 09:24:18 +0000
commitdf9e6ef7585e44996817138ab01dc25c03ea96ca (patch)
treeb829f9c56f95f61ef6e6971372a4ae9f392aa06b /simon
parent412f7105f06343c6a592a58df4b575fd64b74024 (diff)
downloadscummvm-rg350-df9e6ef7585e44996817138ab01dc25c03ea96ca.tar.gz
scummvm-rg350-df9e6ef7585e44996817138ab01dc25c03ea96ca.tar.bz2
scummvm-rg350-df9e6ef7585e44996817138ab01dc25c03ea96ca.zip
Fingolfin's suggested fix for bug #1004919.
svn-id: r14959
Diffstat (limited to 'simon')
-rw-r--r--simon/midi.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/simon/midi.cpp b/simon/midi.cpp
index 22a7434ff7..10b4ae7312 100644
--- a/simon/midi.cpp
+++ b/simon/midi.cpp
@@ -397,9 +397,12 @@ void MidiPlayer::loadSMF (File *in, int song, bool sfx) {
// 1 BYTE : Always seems to be 0x00
// 1 BYTE : Ranges from 0x02 to 0x08 (always 0x02 for SFX, though)
// 1 BYTE : Loop control. 0 = no loop, 1 = loop
- if (!sfx)
- setLoop(p->data[6] != 0);
-
+ if (!sfx) {
+ // According to bug #1004919 calling setLoop() from
+ // within a lock causes a lockup, though I have no
+ // idea when this actually happens.
+ _loopTrack = (p->data[6] != 0);
+ }
}
MidiParser *parser = MidiParser::createParser_SMF();