[Scummvm-git-logs] scummvm master -> d4a0ac0e78401a835cfda6a1ca204dfd19073bfc
AndywinXp
noreply at scummvm.org
Sun Jan 15 11:12:14 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
d4a0ac0e78 SCUMM: DIMUSE: Fix uninit memory read for low latency mode
Commit: d4a0ac0e78401a835cfda6a1ca204dfd19073bfc
https://github.com/scummvm/scummvm/commit/d4a0ac0e78401a835cfda6a1ca204dfd19073bfc
Author: AndywinXp (andywinxp at gmail.com)
Date: 2023-01-15T12:12:06+01:00
Commit Message:
SCUMM: DIMUSE: Fix uninit memory read for low latency mode
Changed paths:
engines/scumm/imuse_digi/dimuse_internalmixer.cpp
engines/scumm/imuse_digi/dimuse_tracks.cpp
diff --git a/engines/scumm/imuse_digi/dimuse_internalmixer.cpp b/engines/scumm/imuse_digi/dimuse_internalmixer.cpp
index bb3359ba118..882cc42842f 100644
--- a/engines/scumm/imuse_digi/dimuse_internalmixer.cpp
+++ b/engines/scumm/imuse_digi/dimuse_internalmixer.cpp
@@ -44,6 +44,8 @@ IMuseDigiInternalMixer::IMuseDigiInternalMixer(Audio::Mixer *mixer, int sampleRa
if (!_lowLatencyMode || _isEarlyDiMUSE)
_stream = Audio::makeQueuingAudioStream(_sampleRate, _mixer->getOutputStereo());
+ else
+ _stream = nullptr;
_radioChatter = 0;
_amp8Table = nullptr;
diff --git a/engines/scumm/imuse_digi/dimuse_tracks.cpp b/engines/scumm/imuse_digi/dimuse_tracks.cpp
index e4a489478c4..5ff483370d9 100644
--- a/engines/scumm/imuse_digi/dimuse_tracks.cpp
+++ b/engines/scumm/imuse_digi/dimuse_tracks.cpp
@@ -260,8 +260,11 @@ void IMuseDigital::tracksLowLatencyCallback() {
// We use a separate queue cardinality handling, since SMUSH audio and iMUSE audio can overlap...
bool canQueueBufs = (int)_internalMixer->getStream(idx)->numQueuedStreams() < (_maxQueuedStreams + 1);
- bool canQueueFtSmush = (int)_internalMixer->getStream(-1)->numQueuedStreams() < (_maxQueuedStreams + 1);
- canQueueFtSmush &= _internalMixer->getStream(-1) != nullptr;
+ bool canQueueFtSmush = _internalMixer->getStream(-1) != nullptr;
+
+ if (canQueueFtSmush) {
+ canQueueFtSmush &= (int)_internalMixer->getStream(-1)->numQueuedStreams() < (_maxQueuedStreams + 1);
+ }
if (canQueueBufs) {
if (track)
More information about the Scummvm-git-logs
mailing list