diff options
Diffstat (limited to 'mcs/class/System.XML/Mono.Xml.Xsl/ScriptCompilerInfo.cs')
-rwxr-xr-x | mcs/class/System.XML/Mono.Xml.Xsl/ScriptCompilerInfo.cs | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/mcs/class/System.XML/Mono.Xml.Xsl/ScriptCompilerInfo.cs b/mcs/class/System.XML/Mono.Xml.Xsl/ScriptCompilerInfo.cs index 0a5d72ed4cb..87438fa2bb0 100755 --- a/mcs/class/System.XML/Mono.Xml.Xsl/ScriptCompilerInfo.cs +++ b/mcs/class/System.XML/Mono.Xml.Xsl/ScriptCompilerInfo.cs @@ -216,12 +216,6 @@ end namespace { static Type providerType; - static JScriptCompilerInfo () - { - Assembly jsasm = Assembly.LoadWithPartialName ("Microsoft.JScript", null); - providerType = jsasm.GetType ("Microsoft.JScript.JScriptCodeProvider"); - } - public JScriptCompilerInfo () { this.CompilerCommand = "mjs"; @@ -231,9 +225,17 @@ end namespace this.DefaultCompilerOptions = "/t:library /r:Microsoft.VisualBasic.dll"; } - public override CodeDomProvider CodeDomProvider {
- get { return (CodeDomProvider) Activator.CreateInstance (providerType); }
- }
+ public override CodeDomProvider CodeDomProvider { + get { + // no need for locking + if (providerType == null) { + Assembly jsasm = Assembly.LoadWithPartialName ("Microsoft.JScript", null); + if (jsasm != null) + providerType = jsasm.GetType ("Microsoft.JScript.JScriptCodeProvider"); + } + return (CodeDomProvider) Activator.CreateInstance (providerType); + } + } public override string Extension { get { return ".js"; } |