[Scummvm-git-logs] scummvm branch-2-6 -> 18faa9db61235c836d12622621528e0c228b0733
mistydemeo
noreply at scummvm.org
Tue Oct 11 17:07:02 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:
18faa9db61 DIRECTOR: only record valid MacArchive members
Commit: 18faa9db61235c836d12622621528e0c228b0733
https://github.com/scummvm/scummvm/commit/18faa9db61235c836d12622621528e0c228b0733
Author: Misty De Meo (mistydemeo at gmail.com)
Date: 2022-10-11T09:56:30-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 906fe9c0a02..1c9b6051207 100644
--- a/engines/director/archive.cpp
+++ b/engines/director/archive.cpp
@@ -267,16 +267,27 @@ void MacArchive::readTags() {
Common::MacResTagArray tagArray = _resFork->getResTagArray();
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
res.name = _resFork->getResName(tagArray[i], idArray[j]);
debug(3, "Found MacArchive resource '%s' %d: %s", tag2str(tagArray[i]), idArray[j], res.name.c_str());
}
+
+ // 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