From c54baa429b5ae607c89c86d7374ed6979897a11b Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Sat, 30 Aug 2003 22:17:59 +0000 Subject: BS2 crashed because it passed a buffer of uneven length to the mixer. This is the only place I can think of where this could have happened, so I've added a paranoid check to ensure the buffer length is even. Let's see how that works out... svn-id: r9933 --- sword2/driver/d_sound.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sword2') diff --git a/sword2/driver/d_sound.cpp b/sword2/driver/d_sound.cpp index 7010e692dc..0f4450881f 100644 --- a/sword2/driver/d_sound.cpp +++ b/sword2/driver/d_sound.cpp @@ -1925,6 +1925,10 @@ void Sword2Sound::UpdateCompSampleStreaming(void) { if (soundHandleMusic[i] == 0) { soundHandleMusic[i] = g_engine->_mixer->newStream(data16, bufferSizeMusic, 22050, SoundMixer::FLAG_16BITS, 100000); } else { + // Paranoid check that seems to + // be necessary. + if (len & 1) + len--; g_engine->_mixer->appendStream(soundHandleMusic[i], data16, len); } -- cgit v1.2.3