From: Jérémie Laval Date: Thu, 6 Jun 2013 14:51:37 +0000 (-0400) Subject: [monodoc] Cache assembly loaded with MonoImpInfo. Patch by Aaron Oneal. X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=04618c181025955d226d928c72b0e624d42e6904;p=mono.git [monodoc] Cache assembly loaded with MonoImpInfo. Patch by Aaron Oneal. --- diff --git a/mcs/class/monodoc/Monodoc/generators/html/Ecma2Html.cs b/mcs/class/monodoc/Monodoc/generators/html/Ecma2Html.cs index c73ed1907e2..c15c6137786 100644 --- a/mcs/class/monodoc/Monodoc/generators/html/Ecma2Html.cs +++ b/mcs/class/monodoc/Monodoc/generators/html/Ecma2Html.cs @@ -113,6 +113,7 @@ namespace Monodoc.Generators.Html public class ExtensionObject { bool quiet = true; + Dictionary assemblyCache = new Dictionary (); public string Colorize(string code, string lang) { @@ -216,7 +217,11 @@ namespace Monodoc.Generators.Html System.Reflection.Assembly assembly = null; try { - assembly = System.Reflection.Assembly.LoadWithPartialName(assemblyname); + if (!assemblyCache.TryGetValue (assemblyname, out assembly)) { + assembly = System.Reflection.Assembly.LoadWithPartialName(assemblyname); + if (assembly != null) + assemblyCache[assemblyname] = assembly; + } } catch (Exception) { // nothing. } @@ -272,7 +277,13 @@ namespace Monodoc.Generators.Html if (assemblyname == string.Empty) return string.Empty; - var assembly = System.Reflection.Assembly.LoadWithPartialName(assemblyname); + System.Reflection.Assembly assembly; + if (!assemblyCache.TryGetValue (assemblyname, out assembly)) { + assembly = System.Reflection.Assembly.LoadWithPartialName(assemblyname); + if (assembly != null) + assemblyCache[assemblyname] = assembly; + } + if (assembly == null) return string.Empty;