浏览代码

Fix possible crash on accessing no longer existing submod

Ivan Savenko 5 月之前
父节点
当前提交
9d2cf288fb
共有 1 个文件被更改,包括 7 次插入0 次删除
  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)