diff options
| author | Rob Mensching <rob@firegiant.com> | 2020-07-10 23:09:54 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2020-07-14 10:53:45 -0700 |
| commit | 28f41d1afec40d79459402fbed21f6c237768adb (patch) | |
| tree | 803b992ae7777e3aaf281c585f22978ac3c5245b /src/WixToolset.Core/CompilerCore.cs | |
| parent | 1717b6b6273ef09bed9cc359d1c062c55650fd7e (diff) | |
| download | wix-28f41d1afec40d79459402fbed21f6c237768adb.tar.gz wix-28f41d1afec40d79459402fbed21f6c237768adb.tar.bz2 wix-28f41d1afec40d79459402fbed21f6c237768adb.zip | |
Implement optimized simple reference creation
Diffstat (limited to 'src/WixToolset.Core/CompilerCore.cs')
| -rw-r--r-- | src/WixToolset.Core/CompilerCore.cs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/WixToolset.Core/CompilerCore.cs b/src/WixToolset.Core/CompilerCore.cs index 2f65db7a..d88858ae 100644 --- a/src/WixToolset.Core/CompilerCore.cs +++ b/src/WixToolset.Core/CompilerCore.cs | |||
| @@ -381,6 +381,26 @@ namespace WixToolset.Core | |||
| 381 | /// </summary> | 381 | /// </summary> |
| 382 | /// <param name="sourceLineNumbers">Source line information for the row.</param> | 382 | /// <param name="sourceLineNumbers">Source line information for the row.</param> |
| 383 | /// <param name="symbolName">The symbol name of the simple reference.</param> | 383 | /// <param name="symbolName">The symbol name of the simple reference.</param> |
| 384 | /// <param name="primaryKey">The primary key of the simple reference.</param> | ||
| 385 | public void CreateSimpleReference(SourceLineNumber sourceLineNumbers, string symbolName, string primaryKey) | ||
| 386 | { | ||
| 387 | if (!this.EncounteredError) | ||
| 388 | { | ||
| 389 | var id = String.Concat(symbolName, ":", primaryKey); | ||
| 390 | |||
| 391 | // If this simple reference hasn't been added to the active section already, add it. | ||
| 392 | if (this.activeSectionSimpleReferences.Add(id)) | ||
| 393 | { | ||
| 394 | this.parseHelper.CreateSimpleReference(this.ActiveSection, sourceLineNumbers, symbolName, primaryKey); | ||
| 395 | } | ||
| 396 | } | ||
| 397 | } | ||
| 398 | |||
| 399 | /// <summary> | ||
| 400 | /// Create a WixSimpleReferenceSymbol in the active section. | ||
| 401 | /// </summary> | ||
| 402 | /// <param name="sourceLineNumbers">Source line information for the row.</param> | ||
| 403 | /// <param name="symbolName">The symbol name of the simple reference.</param> | ||
| 384 | /// <param name="primaryKeys">The primary keys of the simple reference.</param> | 404 | /// <param name="primaryKeys">The primary keys of the simple reference.</param> |
| 385 | public void CreateSimpleReference(SourceLineNumber sourceLineNumbers, string symbolName, params string[] primaryKeys) | 405 | public void CreateSimpleReference(SourceLineNumber sourceLineNumbers, string symbolName, params string[] primaryKeys) |
| 386 | { | 406 | { |
| @@ -402,6 +422,17 @@ namespace WixToolset.Core | |||
| 402 | /// </summary> | 422 | /// </summary> |
| 403 | /// <param name="sourceLineNumbers">Source line information for the row.</param> | 423 | /// <param name="sourceLineNumbers">Source line information for the row.</param> |
| 404 | /// <param name="symbolDefinition">The symbol definition of the simple reference.</param> | 424 | /// <param name="symbolDefinition">The symbol definition of the simple reference.</param> |
| 425 | /// <param name="primaryKey">The primary key of the simple reference.</param> | ||
| 426 | public void CreateSimpleReference(SourceLineNumber sourceLineNumbers, IntermediateSymbolDefinition symbolDefinition, string primaryKey) | ||
| 427 | { | ||
| 428 | this.CreateSimpleReference(sourceLineNumbers, symbolDefinition.Name, primaryKey); | ||
| 429 | } | ||
| 430 | |||
| 431 | /// <summary> | ||
| 432 | /// Create a WixSimpleReferenceSymbol in the active section. | ||
| 433 | /// </summary> | ||
| 434 | /// <param name="sourceLineNumbers">Source line information for the row.</param> | ||
| 435 | /// <param name="symbolDefinition">The symbol definition of the simple reference.</param> | ||
| 405 | /// <param name="primaryKeys">The primary keys of the simple reference.</param> | 436 | /// <param name="primaryKeys">The primary keys of the simple reference.</param> |
| 406 | public void CreateSimpleReference(SourceLineNumber sourceLineNumbers, IntermediateSymbolDefinition symbolDefinition, params string[] primaryKeys) | 437 | public void CreateSimpleReference(SourceLineNumber sourceLineNumbers, IntermediateSymbolDefinition symbolDefinition, params string[] primaryKeys) |
| 407 | { | 438 | { |
