From 9d2cf288fbfb8f173226e43a89a0d34eba56385f Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Tue, 1 Jul 2025 17:49:43 +0300 Subject: [PATCH] Fix possible crash on accessing no longer existing submod --- lib/modding/ModManager.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/modding/ModManager.cpp b/lib/modding/ModManager.cpp index 2835c204a..01e961197 100644 --- a/lib/modding/ModManager.cpp +++ b/lib/modding/ModManager.cpp @@ -285,6 +285,13 @@ void ModsPresetState::removeOldMods(const TModList & modsToKeep) vstd::erase_if(currentPreset["settings"].Struct(), [&](const auto & entry){ return !vstd::contains(modsToKeep, entry.first); }); + + for (auto & modSettings : currentPreset["settings"].Struct()) + { + vstd::erase_if(modSettings.second.Struct(), [&](const auto & entry){ + return !vstd::contains(modsToKeep, modSettings.first + "." + entry.first); + }); + } } void ModsPresetState::eraseRootMod(const TModID & modName)