From 4314b6115bb1109c1c386cc2d135a9ca472d58e0 Mon Sep 17 00:00:00 2001
From: Jeff Ames
Date: Wed, 19 Dec 2007 10:06:56 +0000
Subject: Stopped module loader from re-loading .dll once for every plugin
found within it.
---
OpenSim/Region/Environment/ModuleLoader.cs | 28 ++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Region/Environment/ModuleLoader.cs b/OpenSim/Region/Environment/ModuleLoader.cs
index 6893e3f..cfe19cb 100644
--- a/OpenSim/Region/Environment/ModuleLoader.cs
+++ b/OpenSim/Region/Environment/ModuleLoader.cs
@@ -114,20 +114,26 @@ namespace OpenSim.Region.Environment
}
///
- /// Loads/initialises a Module instance that can be used by mutliple Regions
+ /// Loads/initialises a Module instance that can be used by multiple Regions
///
///
///
- ///
public void LoadSharedModule(string dllName, string moduleName)
{
IRegionModule module = LoadModule(dllName, moduleName);
- if (module != null)
+
+ LoadSharedModule(module);
+ }
+
+ ///
+ /// Loads/initialises a Module instance that can be used by multiple Regions
+ ///
+ ///
+ public void LoadSharedModule(IRegionModule module)
+ {
+ if (!m_loadedSharedModules.ContainsKey(module.Name))
{
- if (!m_loadedSharedModules.ContainsKey(module.Name))
- {
- m_loadedSharedModules.Add(module.Name, module);
- }
+ m_loadedSharedModules.Add(module.Name, module);
}
}
@@ -148,7 +154,7 @@ namespace OpenSim.Region.Environment
else
{
m_log.Verbose("MODULES", " [{0}]: Loading Shared Module.", module.Name);
- LoadSharedModule(dllName, module.Name);
+ LoadSharedModule(module);
}
}
}
@@ -168,7 +174,6 @@ namespace OpenSim.Region.Environment
///
///
///
- ///
public IRegionModule LoadModule(string dllName, string moduleName)
{
IRegionModule[] modules = LoadModules(dllName);
@@ -202,7 +207,6 @@ namespace OpenSim.Region.Environment
}
}
-
if (pluginAssembly != null)
{
try
@@ -221,9 +225,9 @@ namespace OpenSim.Region.Environment
}
}
}
- catch( ReflectionTypeLoadException )
+ catch (ReflectionTypeLoadException)
{
- m_log.Verbose("MODULES", "Could not load types for [{0}].", pluginAssembly.FullName );
+ m_log.Verbose("MODULES", "Could not load types for [{0}].", pluginAssembly.FullName);
}
}
--
cgit v1.1