diff options
| author | Rob Mensching <rob@firegiant.com> | 2021-03-03 10:37:34 -0800 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2021-03-03 12:03:35 -0800 |
| commit | 816bfd180f132a9b07aaa573f5ac0f5948195764 (patch) | |
| tree | eccb0db93007e00d3d8175f423338e960a7778f8 /src/WixToolset.Core.WindowsInstaller/Bind/OptimizeFileFacadesOrderCommand.cs | |
| parent | e362f93f9fa9ed4b174333d44fcda25790bc85e0 (diff) | |
| download | wix-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.cs | 12 |
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 | { |
