From 2eecbe68fa9f1ba80e7c78fd578e4b95577e7d3a Mon Sep 17 00:00:00 2001 From: Martin Kiewitz Date: Wed, 27 Jan 2016 21:18:45 +0100 Subject: AGI: Apple IIgs: remove warning about bad sample size --- engines/agi/sound_2gs.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'engines') diff --git a/engines/agi/sound_2gs.cpp b/engines/agi/sound_2gs.cpp index 6495d221d0..176ac5612f 100644 --- a/engines/agi/sound_2gs.cpp +++ b/engines/agi/sound_2gs.cpp @@ -577,17 +577,16 @@ bool IIgsInstrumentHeader::finalize(int8 *wavetable, uint32 wavetableSize) { } if ((waveOffset + waveSize) > wavetableSize) { - // size seems to be incorrect - // actually happens for at least Manhunter 1, when looking at corpse at the start - warning("Apple IIgs sound: sample exceeds size of wavetable. sample got cut"); + // fix up size, it's actually saved in a way in the header, that it can't be correct + // if we don't fix it here, we would do invalid memory access, which results in potential crashes wave[i][k].size = wavetableSize - waveOffset; } - // Detect true sample size in case the sample ends prematurely. - int8 *p = wavetableBase + wave[i][k].offset; + // Detect true sample size + int8 *sample = wavetableBase + wave[i][k].offset; uint32 trueSize; for (trueSize = 0; trueSize < wave[i][k].size; trueSize++) { - if (p[trueSize] == -ZERO_OFFSET) + if (sample[trueSize] == -ZERO_OFFSET) break; } wave[i][k].size = trueSize; -- cgit v1.2.3