[DatTools] Add lock to adding rom

The idea is that this will help in the future to make Parsing go quicker
This commit is contained in:
Matt Nadareski
2016-09-08 21:48:50 -07:00
parent 21e06108a3
commit c45d8b7025

View File

@@ -1452,26 +1452,29 @@ namespace SabreTools.Helper
rom.HashData.Size = -1; rom.HashData.Size = -1;
} }
key = rom.HashData.Size + "-" + rom.HashData.CRC; lock (datdata.Files)
if (datdata.Files.ContainsKey(key))
{ {
datdata.Files[key].Add(rom); key = rom.HashData.Size + "-" + rom.HashData.CRC;
} if (datdata.Files.ContainsKey(key))
else {
{ datdata.Files[key].Add(rom);
List<Rom> newvalue = new List<Rom>(); }
newvalue.Add(rom); else
datdata.Files.Add(key, newvalue); {
} List<Rom> newvalue = new List<Rom>();
newvalue.Add(rom);
datdata.Files.Add(key, newvalue);
}
// Add statistical data // Add statistical data
datdata.RomCount += (rom.Type == ItemType.Rom ? 1 : 0); datdata.RomCount += (rom.Type == ItemType.Rom ? 1 : 0);
datdata.DiskCount += (rom.Type == ItemType.Disk ? 1 : 0); datdata.DiskCount += (rom.Type == ItemType.Disk ? 1 : 0);
datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size); datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1); datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1); datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1); datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
datdata.NodumpCount += (rom.Nodump ? 1 : 0); datdata.NodumpCount += (rom.Nodump ? 1 : 0);
}
} }
return datdata; return datdata;