aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.WindowsInstaller/Bind/OptimizeFileFacadesOrderCommand.cs
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2021-03-03 10:37:34 -0800
committerRob Mensching <rob@firegiant.com>2021-03-03 12:03:35 -0800
commit816bfd180f132a9b07aaa573f5ac0f5948195764 (patch)
treeeccb0db93007e00d3d8175f423338e960a7778f8 /src/WixToolset.Core.WindowsInstaller/Bind/OptimizeFileFacadesOrderCommand.cs
parente362f93f9fa9ed4b174333d44fcda25790bc85e0 (diff)
downloadwix-816bfd180f132a9b07aaa573f5ac0f5948195764.tar.gz
wix-816bfd180f132a9b07aaa573f5ac0f5948195764.tar.bz2
wix-816bfd180f132a9b07aaa573f5ac0f5948195764.zip
Complete MOVE_TO_BACKEND code migration
Fixes wixtoolset/issues#6212
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/Bind/OptimizeFileFacadesOrderCommand.cs')
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/OptimizeFileFacadesOrderCommand.cs12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/OptimizeFileFacadesOrderCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/OptimizeFileFacadesOrderCommand.cs
index e96dfd91..67515154 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/OptimizeFileFacadesOrderCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/OptimizeFileFacadesOrderCommand.cs
@@ -36,7 +36,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
36 { 36 {
37 var canonicalComponentTargetPaths = this.ComponentTargetPaths(); 37 var canonicalComponentTargetPaths = this.ComponentTargetPaths();
38 38
39 this.FileFacades.Sort(new FileFacadeOptimizer(canonicalComponentTargetPaths)); 39 this.FileFacades.Sort(new FileFacadeOptimizer(canonicalComponentTargetPaths, this.Section.Type == SectionType.Module));
40 40
41 return this.FileFacades; 41 return this.FileFacades;
42 } 42 }
@@ -71,17 +71,21 @@ namespace WixToolset.Core.WindowsInstaller.Bind
71 71
72 private class FileFacadeOptimizer : IComparer<FileFacade> 72 private class FileFacadeOptimizer : IComparer<FileFacade>
73 { 73 {
74 public FileFacadeOptimizer(Dictionary<string, string> componentTargetPaths) 74 public FileFacadeOptimizer(Dictionary<string, string> componentTargetPaths, bool optimizingMergeModule)
75 { 75 {
76 this.ComponentTargetPaths = componentTargetPaths; 76 this.ComponentTargetPaths = componentTargetPaths;
77 this.OptimizingMergeModule = optimizingMergeModule;
77 } 78 }
78 79
79 private Dictionary<string, string> ComponentTargetPaths { get; } 80 private Dictionary<string, string> ComponentTargetPaths { get; }
80 81
82 private bool OptimizingMergeModule { get; }
83
81 public int Compare(FileFacade x, FileFacade y) 84 public int Compare(FileFacade x, FileFacade y)
82 { 85 {
83 // First group files by DiskId. 86 // First group files by DiskId but ignore if processing a Merge Module
84 var compare = x.DiskId.CompareTo(y.DiskId); 87 // because Merge Modules don't have separate disks.
88 var compare = this.OptimizingMergeModule ? 0 : x.DiskId.CompareTo(y.DiskId);
85 89
86 if (compare != 0) 90 if (compare != 0)
87 { 91 {