@joebigelow / wix-1 / commits / 73e379d5

Integrate the IntermediateSection and IntermediateSymbol mutable changes

Rob Mensching committed Apr 3, 2021 at 18:16 UTC 73e379d53076184d189a115ac1f5eb3d44d158df
1 file changed +11 -6
src/WixToolset.Converters.Symbolizer/ConvertSymbols.cs
+11 -6
@@ -39,7 +39,7 @@ namespace WixToolset.Converters.Symbolizer
39 var symbol = GenerateSymbolFromRow(row, wixMediaByDiskId, componentsById, fontsById, bindPathsById, selfRegById, wixFileById, wixDirectoryById);
40 if (symbol != null)
41 {
42 - section.Symbols.Add(symbol);
42 + section.AddSymbol(symbol);
43 }
44 }
45 }
@@ -733,11 +733,13 @@ namespace WixToolset.Converters.Symbolizer
733
734 private static IntermediateSymbol DefaultSymbolFromRow(Type symbolType, Wix3.Row row, bool columnZeroIsId)
735 {
736 - var symbol = Activator.CreateInstance(symbolType) as IntermediateSymbol;
736 + var id = columnZeroIsId ? GetIdentifierForRow(row) : null;
737 +
738 + var createSymbol = symbolType.GetConstructor(new[] { typeof(SourceLineNumber), typeof(Identifier) });
739 + var symbol = (IntermediateSymbol)createSymbol.Invoke(new object[] { SourceLineNumber4(row.SourceLineNumbers), id });
740
741 SetSymbolFieldsFromRow(row, symbol, columnZeroIsId);
742
740 - symbol.SourceLineNumbers = SourceLineNumber4(row.SourceLineNumbers);
743 return symbol;
744 }
745
@@ -747,7 +749,11 @@ namespace WixToolset.Converters.Symbolizer
749 var fieldDefinitions = columnDefinitions.Select(columnDefinition =>
750 new IntermediateFieldDefinition(columnDefinition.Name, ColumnType3ToIntermediateFieldType4(columnDefinition.Type))).ToArray();
751 var symbolDefinition = new IntermediateSymbolDefinition(row.Table.Name, fieldDefinitions, null);
750 - var symbol = new IntermediateSymbol(symbolDefinition, SourceLineNumber4(row.SourceLineNumbers));
752 +
753 + var id = columnZeroIsId ? GetIdentifierForRow(row) : null;
754 +
755 + var createSymbol = typeof(IntermediateSymbol).GetConstructor(new[] { typeof(IntermediateSymbolDefinition), typeof(SourceLineNumber), typeof(Identifier) });
756 + var symbol = (IntermediateSymbol)createSymbol.Invoke(new object[] { symbolDefinition, SourceLineNumber4(row.SourceLineNumbers), id });
757
758 SetSymbolFieldsFromRow(row, symbol, columnZeroIsId);
759
@@ -756,10 +762,9 @@ namespace WixToolset.Converters.Symbolizer
762
763 private static void SetSymbolFieldsFromRow(Wix3.Row row, IntermediateSymbol symbol, bool columnZeroIsId)
764 {
759 - int offset = 0;
765 + var offset = 0;
766 if (columnZeroIsId)
767 {
762 - symbol.Id = GetIdentifierForRow(row);
768 offset = 1;
769 }
770