[Scummvm-git-logs] scummvm master -> 30b6bba0d2230ae691a33097b58fd807bf570802
kelmer44
noreply at scummvm.org
Thu May 14 08:34:25 UTC 2026
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
30b6bba0d2 PELROCK: Fixes resource leaks
Commit: 30b6bba0d2230ae691a33097b58fd807bf570802
https://github.com/scummvm/scummvm/commit/30b6bba0d2230ae691a33097b58fd807bf570802
Author: kelmer (kelmer at gmail.com)
Date: 2026-05-14T10:34:17+02:00
Commit Message:
PELROCK: Fixes resource leaks
Changed paths:
engines/pelrock/actions.cpp
engines/pelrock/cdplayer.cpp
engines/pelrock/resources.cpp
engines/pelrock/room.cpp
engines/pelrock/saveload.cpp
diff --git a/engines/pelrock/actions.cpp b/engines/pelrock/actions.cpp
index 5062db15a0e..0c9f75956c4 100644
--- a/engines/pelrock/actions.cpp
+++ b/engines/pelrock/actions.cpp
@@ -1831,6 +1831,7 @@ void PelrockEngine::smokeAnimation(int spriteIndex, bool hide) {
_screen->update();
g_system->delayMillis(10);
}
+ smokeSurface.free();
}
void PelrockEngine::openArchitectDoor(HotSpot *hotspot) {
diff --git a/engines/pelrock/cdplayer.cpp b/engines/pelrock/cdplayer.cpp
index a67575a2cbb..25e98198aa7 100644
--- a/engines/pelrock/cdplayer.cpp
+++ b/engines/pelrock/cdplayer.cpp
@@ -128,6 +128,8 @@ void CDPlayer::cleanup() {
g_engine->_screen->markAllDirty();
g_engine->_screen->update();
+ delete[] _controls;
+ _controls = nullptr;
}
void CDPlayer::checkMouse(int x, int y) {
diff --git a/engines/pelrock/resources.cpp b/engines/pelrock/resources.cpp
index 3e74157745e..4d6c56d3c6b 100644
--- a/engines/pelrock/resources.cpp
+++ b/engines/pelrock/resources.cpp
@@ -328,6 +328,7 @@ void ResourceManager::loadOtherSpecialAnim(uint32 offset, bool rleCompressed, by
size_t compressedSize = 0;
readUntilBuda(&alfred7, offset, compressed, compressedSize);
bufferSize = rleDecompress(compressed, compressedSize, 0, 0, &buffer, true);
+ free(compressed);
} else {
alfred7.seek(offset, SEEK_SET);
alfred7.read(buffer, bufferSize);
diff --git a/engines/pelrock/room.cpp b/engines/pelrock/room.cpp
index ac5a5a8f4a3..e7c64d4cad8 100644
--- a/engines/pelrock/room.cpp
+++ b/engines/pelrock/room.cpp
@@ -998,6 +998,7 @@ void RoomManager::loadRoomAnimations(byte *pixelData, size_t pixelDataSize, byte
}
} else {
+ delete[] anim.animData;
continue;
}
sprite.animData[j] = anim;
@@ -1290,6 +1291,7 @@ byte *RoomManager::loadShadowMap(int roomNumber) {
size_t decompressedSize = rleDecompress(compressed, compressedSize, 0, 640 * 400, &shadows);
if (decompressedSize == 0) {
debug("Failed to decompress shadow map for room %d", roomNumber);
+ free(shadows);
shadows = nullptr;
}
// debug("Decompressed shadow map for room %d, compressed size: %zu, decompressed size: %zu", roomNumber, compressedSize, decompressedSize);
diff --git a/engines/pelrock/saveload.cpp b/engines/pelrock/saveload.cpp
index 3aae8c5c511..c8598ef2b42 100644
--- a/engines/pelrock/saveload.cpp
+++ b/engines/pelrock/saveload.cpp
@@ -308,6 +308,7 @@ bool syncGameStateData(Common::Serializer &s, GameStateData *gameState) {
for (uint16 i = 0; i < numBranches; ++i) {
ResetEntry entry = branches[i];
syncResetEntry(s, entry);
+ delete[] entry.data;
}
}
} else {
More information about the Scummvm-git-logs
mailing list