[Scummvm-git-logs] scummvm master -> 5fe93a44852666eba433f27bb0eb014d3d4eef57

sluicebox noreply at scummvm.org
Sat Oct 25 17:42:59 UTC 2025


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
32026f04f4 SLUDGE: Fix memory leaks when playing sounds
86ef56f055 AUDIO: Fix memory leak in ModXmS3mStream
5fe93a4485 AUDIO: Fix memory leak when Modplayaer support disabled


Commit: 32026f04f44296cc7b2245ca99d328506b71fc4d
    https://github.com/scummvm/scummvm/commit/32026f04f44296cc7b2245ca99d328506b71fc4d
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2025-10-25T10:32:42-07:00

Commit Message:
SLUDGE: Fix memory leaks when playing sounds

Changed paths:
    engines/sludge/sound.cpp


diff --git a/engines/sludge/sound.cpp b/engines/sludge/sound.cpp
index 498b9ebe6e4..7c54469dfb0 100644
--- a/engines/sludge/sound.cpp
+++ b/engines/sludge/sound.cpp
@@ -227,11 +227,15 @@ bool SoundManager::playMOD(int f, int a, int fromTrack) {
 	}
 	Audio::RewindableAudioStream *mod = nullptr;
 
-	if (Audio::probeModXmS3m(memImage))
+	if (Audio::probeModXmS3m(memImage)) {
 		mod = Audio::makeModXmS3mStream(memImage, DisposeAfterUse::NO, fromTrack);
+		if (mod) {
+			delete memImage;
+		}
+	}
 
 	if (!mod) {
-		mod = Audio::makeUniversalTrackerStream(memImage, DisposeAfterUse::NO);
+		mod = Audio::makeUniversalTrackerStream(memImage, DisposeAfterUse::YES);
 	}
 
 	if (!mod) {
@@ -329,19 +333,22 @@ int SoundManager::makeSoundAudioStream(int f, Audio::AudioStream *&audiostream,
 	readStream->seek(curr_ptr);
 
 	Audio::RewindableAudioStream *stream = nullptr;
-	if (tag == MKTAG('R','I','F','F'))
-		stream = Audio::makeWAVStream(readStream->readStream(length), DisposeAfterUse::NO);
-
+	switch (tag) {
+	case MKTAG('R','I','F','F'):
+		stream = Audio::makeWAVStream(readStream->readStream(length), DisposeAfterUse::YES);
+		break;
+	case MKTAG('O','g','g','S'):
 #ifdef USE_VORBIS
-	if (tag == MKTAG('O','g','g','S'))
-		stream = Audio::makeVorbisStream(readStream->readStream(length), DisposeAfterUse::NO);
+		stream = Audio::makeVorbisStream(readStream->readStream(length), DisposeAfterUse::YES);
 #endif
-
+		break;
+	default:
+		// TODO: Detect this correctly
 #ifdef USE_MAD
-	// TODO: Detect this correctly
-	if (!stream)
-		stream = Audio::makeMP3Stream(readStream->readStream(length), DisposeAfterUse::NO);
+		stream = Audio::makeMP3Stream(readStream->readStream(length), DisposeAfterUse::YES);
 #endif
+		break;
+	}
 
 	g_sludge->_resMan->finishAccess();
 


Commit: 86ef56f0556fc6a0673fc04d6293f55321c26f91
    https://github.com/scummvm/scummvm/commit/86ef56f0556fc6a0673fc04d6293f55321c26f91
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2025-10-25T10:32:43-07:00

Commit Message:
AUDIO: Fix memory leak in ModXmS3mStream

Changed paths:
    audio/mods/mod_xm_s3m.cpp


diff --git a/audio/mods/mod_xm_s3m.cpp b/audio/mods/mod_xm_s3m.cpp
index 56b3166732b..fb05b0c1952 100644
--- a/audio/mods/mod_xm_s3m.cpp
+++ b/audio/mods/mod_xm_s3m.cpp
@@ -204,6 +204,7 @@ ModXmS3mStream::~ModXmS3mStream() {
 	}
 
 	if (_playCount) {
+		delete[] _playCount[0];
 		delete[] _playCount;
 		_playCount = nullptr;
 	}


Commit: 5fe93a44852666eba433f27bb0eb014d3d4eef57
    https://github.com/scummvm/scummvm/commit/5fe93a44852666eba433f27bb0eb014d3d4eef57
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2025-10-25T10:32:43-07:00

Commit Message:
AUDIO: Fix memory leak when Modplayaer support disabled

Changed paths:
    audio/mods/universaltracker.cpp


diff --git a/audio/mods/universaltracker.cpp b/audio/mods/universaltracker.cpp
index bd5de4d23e2..7b445425a3e 100644
--- a/audio/mods/universaltracker.cpp
+++ b/audio/mods/universaltracker.cpp
@@ -387,6 +387,9 @@ RewindableAudioStream *makeUniversalTrackerStream(Common::SeekableReadStream *st
 
 #if !defined(USE_OPENMPT) && !defined(USE_MIKMOD)
 	warning("Modplayer Support not compiled in");
+	if (disposeAfterUse == DisposeAfterUse::YES) {
+		delete stream;
+	}
 	return nullptr;
 #else
 




More information about the Scummvm-git-logs mailing list