Fix duplicate insertion error when detecting incompatible mods.

Since f1acd22455, mods are checked for compatibility. However, they can
incorrectly be checked & added to inompatible mods several time, leading
to a potential crash.

The new code can also be simplified slightly.

Reviewed By: Angen
Differential Revision: https://code.wildfiregames.com/D4276
This was SVN commit r25926.
This commit is contained in:
wraitii
2021-09-17 16:59:03 +00:00
parent ca4ee134fc
commit dfeb29b82c
2 changed files with 6 additions and 10 deletions
+2 -10
View File
@@ -324,17 +324,9 @@ std::vector<CStr> Mod::CheckForIncompatibleMods(const std::vector<CStr>& mods) c
//0.0.24
const CStr versionToCheck = dep.substr(pos + op.size());
const std::unordered_map<CStr, CStr>::iterator it = modNameVersions.find(modToCheck);
if (it == modNameVersions.end())
{
// Could not find the mod, or 0.0.25(0ad) , <=, 0.0.24(required version)
if (it == modNameVersions.end() || !CompareVersionStrings(it->second, op, versionToCheck))
incompatibleMods.push_back(mod);
continue;
}
// 0.0.25(0ad) , <=, 0.0.24(required version)
if (!CompareVersionStrings(it->second, op, versionToCheck))
{
incompatibleMods.push_back(mod);
continue;
}
break;
}
}