diff --git a/Source/Tools/Flax.Build/Build/Graph/TaskGraph.cs b/Source/Tools/Flax.Build/Build/Graph/TaskGraph.cs index 20027e4aa..c1ac6a258 100644 --- a/Source/Tools/Flax.Build/Build/Graph/TaskGraph.cs +++ b/Source/Tools/Flax.Build/Build/Graph/TaskGraph.cs @@ -21,6 +21,7 @@ namespace Flax.Build.Graph private readonly List _prevBuildCache = new List(); private readonly List _prevBuildCacheFiles = new List(); + private readonly Dictionary _prevBuildCacheFileIndices = new Dictionary(); /// /// The workspace folder of the task graph. @@ -315,6 +316,7 @@ namespace Flax.Build.Graph filesDates[i] = lastWrite; filesValid[i] = isValid; _prevBuildCacheFiles.Add(file); + _prevBuildCacheFileIndices.Add(file, i); if (!isValid || !cacheFile) FileCache.FileRemoveFromCache(file); @@ -474,11 +476,11 @@ namespace Flax.Build.Graph fileIndices.Clear(); foreach (var file in files) { - int fileIndex = _prevBuildCacheFiles.IndexOf(file); - if (fileIndex == -1) + if (!_prevBuildCacheFileIndices.TryGetValue(file, out int fileIndex)) { fileIndex = _prevBuildCacheFiles.Count; _prevBuildCacheFiles.Add(file); + _prevBuildCacheFileIndices.Add(file, fileIndex); } fileIndices.Add(fileIndex);