From ca287231cfe2d122fa55081964b6fbc3f6fae77a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Karlas=CC=8C?= Date: Wed, 30 Nov 2016 15:57:07 +0100 Subject: Bug 41738 - The 'TextTemplatingFileGenerator' code generator crashed: Object reference not set to an instance of an object --- .../Mono.TextTemplating/TemplatingEngine.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'main/src/addins/TextTemplating') diff --git a/main/src/addins/TextTemplating/Mono.TextTemplating/Mono.TextTemplating/TemplatingEngine.cs b/main/src/addins/TextTemplating/Mono.TextTemplating/Mono.TextTemplating/TemplatingEngine.cs index 7672696a6b..bac0fd4ec0 100644 --- a/main/src/addins/TextTemplating/Mono.TextTemplating/Mono.TextTemplating/TemplatingEngine.cs +++ b/main/src/addins/TextTemplating/Mono.TextTemplating/Mono.TextTemplating/TemplatingEngine.cs @@ -173,24 +173,24 @@ namespace Mono.TextTemplating pars.CompilerOptions = "/noconfig " + pars.CompilerOptions; return settings.Provider.CompileAssemblyFromDom (pars, ccu); } - - static HashSet ProcessReferences (ITextTemplatingEngineHost host, ParsedTemplate pt, TemplateSettings settings) + + static string [] ProcessReferences (ITextTemplatingEngineHost host, ParsedTemplate pt, TemplateSettings settings) { - var resolved = new HashSet (); - + var resolved = new Dictionary (); + foreach (string assem in settings.Assemblies.Union (host.StandardAssemblyReferences)) { - if (resolved.Contains (assem)) + if (resolved.Values.Contains (assem)) continue; - + string resolvedAssem = host.ResolveAssemblyReference (assem); - if (!string.IsNullOrEmpty (resolvedAssem)) { - resolved.Add (resolvedAssem); + if (!string.IsNullOrEmpty (resolvedAssem) && File.Exists (resolvedAssem)) { + resolved [AssemblyName.GetAssemblyName (resolvedAssem).FullName] = resolvedAssem; } else { pt.LogError ("Could not resolve assembly reference '" + assem + "'"); return null; } } - return resolved; + return resolved.Values.ToArray (); } public static TemplateSettings GetSettings (ITextTemplatingEngineHost host, ParsedTemplate pt) -- cgit v1.2.3