Changed: #1051 ForceRemovePatchCategories is using a bad index

This commit is contained in:
kervala 2010-10-19 21:06:05 +02:00
parent 42d1cbf9fd
commit 097ef0a8e8

View file

@ -1132,14 +1132,20 @@ void CPatchManager::readDescFile(sint32 nVersion)
} }
} }
CBNPFileSet &bnpFS = const_cast<CBNPFileSet &>(DescFile.getFiles());
for(cat = 0; cat < DescFile.getCategories().categoryCount();) for(cat = 0; cat < DescFile.getCategories().categoryCount();)
{ {
const CBNPCategory &bnpCat = DescFile.getCategories().getCategory(cat);
if (std::find(ForceRemovePatchCategories.begin(), ForceRemovePatchCategories.end(), if (std::find(ForceRemovePatchCategories.begin(), ForceRemovePatchCategories.end(),
DescFile.getCategories().getCategory(cat).getName()) != ForceRemovePatchCategories.end()) bnpCat.getName()) != ForceRemovePatchCategories.end())
{ {
std::string fileName = DescFile.getCategories().getFile(cat); for(uint file = 0; file < bnpCat.fileCount(); ++file)
CBNPFileSet &bnpFS = const_cast<CBNPFileSet &>(DescFile.getFiles()); {
bnpFS.removeFile(fileName); std::string fileName = bnpCat.getFile(file);
bnpFS.removeFile(fileName);
}
const_cast<CBNPCategorySet &>(DescFile.getCategories()).deleteCategory(cat); const_cast<CBNPCategorySet &>(DescFile.getCategories()).deleteCategory(cat);
} }
else else