[Scummvm-git-logs] scummvm master -> 1ed15b789d0f623fc1fab520e8a5fca6ba003ac3
mistydemeo
noreply at scummvm.org
Wed Aug 10 05:49:26 UTC 2022
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:
1ed15b789d DIRECTOR: only record valid MacArchive members
Commit: 1ed15b789d0f623fc1fab520e8a5fca6ba003ac3
https://github.com/scummvm/scummvm/commit/1ed15b789d0f623fc1fab520e8a5fca6ba003ac3
Author: Misty De Meo (mistydemeo at gmail.com)
Date: 2022-08-09T22:22:11-07:00
Commit Message:
DIRECTOR: only record valid MacArchive members
Changed paths:
engines/director/archive.cpp
diff --git a/engines/director/archive.cpp b/engines/director/archive.cpp
index f37173cf2b7..500345161eb 100644
--- a/engines/director/archive.cpp
+++ b/engines/director/archive.cpp
@@ -310,10 +310,16 @@ void MacArchive::readTags() {
Common::DumpFile out;
for (uint32 i = 0; i < tagArray.size(); i++) {
- ResourceMap &resMap = _types[tagArray[i]];
+ ResourceMap resMap;
Common::MacResIDArray idArray = _resFork->getResIDArray(tagArray[i]);
for (uint32 j = 0; j < idArray.size(); j++) {
+ // Avoid assigning invalid entries to _types, because other
+ // functions will assume they exist and are valid if listed.
+ if (_resFork->getResource(tagArray[i], idArray[j]) == nullptr) {
+ continue;
+ }
+
Resource &res = resMap[idArray[j]];
res.offset = res.size = 0; // unused
@@ -324,6 +330,11 @@ void MacArchive::readTags() {
if (ConfMan.getBool("dump_scripts"))
dumpChunk(res, out);
}
+
+ // Don't assign a 0-entry resMap to _types.
+ if (resMap.size() > 0) {
+ _types[tagArray[i]] = resMap;
+ }
}
}
More information about the Scummvm-git-logs
mailing list