[Scummvm-git-logs] scummvm master -> c0dbff0db7a5c47516889984c32c8913e4103210
moralrecordings
noreply at scummvm.org
Thu Sep 18 09:33:30 UTC 2025
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:
c0dbff0db7 DIRECTOR: Fix delete-free mismatch
Commit: c0dbff0db7a5c47516889984c32c8913e4103210
https://github.com/scummvm/scummvm/commit/c0dbff0db7a5c47516889984c32c8913e4103210
Author: Scott Percival (code at moral.net.au)
Date: 2025-09-18T17:32:43+08:00
Commit Message:
DIRECTOR: Fix delete-free mismatch
Changed paths:
engines/director/score.cpp
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index eb082c89e41..343d8074b0a 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -1847,14 +1847,18 @@ void Score::loadFrames(Common::SeekableReadStreamEndian &stream, uint16 version)
// Index 1 in the list contains the sprite order. We are not using it,
if (_version >= kFileVer600) {
Common::MemoryReadStreamEndian *stream1 = getSpriteDetailsStream(1);
- int numSprites = stream1->readUint32();
- debugCN(2, kDebugLoading, "Sprites order: ");
- for (int i = 0; i < numSprites; i++) {
- int spriteId = stream1->readUint32();
- debugCN(2, kDebugLoading, "%d ", spriteId);
+ if (!stream1) {
+ warning("Score::loadFrames: could not fetch sprite details stream");
+ } else {
+ int numSprites = stream1->readUint32();
+ debugCN(2, kDebugLoading, "Sprites order: ");
+ for (int i = 0; i < numSprites; i++) {
+ int spriteId = stream1->readUint32();
+ debugCN(2, kDebugLoading, "%d ", spriteId);
+ }
+ debugC(2, kDebugLoading, "%s", "");
+ delete stream1;
}
- debugC(2, kDebugLoading, "%s", "");
- delete stream1;
}
// Calculate number of frames and their positions
@@ -2425,7 +2429,7 @@ Common::MemoryReadStreamEndian *Score::getSpriteDetailsStream(int spriteIdx) {
if (!size)
return nullptr;
- byte *data = new byte[size];
+ byte *data = (byte *)malloc(size);
_framesStream->seek(_spriteDetailOffsets[spriteIdx], SEEK_SET);
_framesStream->read(data, size);
stream = new Common::MemoryReadStreamEndian(data, size, _framesStream->isBE(), DisposeAfterUse::YES);
More information about the Scummvm-git-logs
mailing list