Browse Source

Fix possible crash on accessing no longer existing submod

Ivan Savenko 5 months ago
parent
commit
9d2cf288fb
1 changed files with 7 additions and 0 deletions
  1. 7 0
      lib/modding/ModManager.cpp

+ 7 - 0
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)