Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/cecil.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjbevain <jbevain@gmail.com>2010-06-14 20:43:53 +0400
committerjbevain <jbevain@gmail.com>2010-06-14 20:43:53 +0400
commitf483acec646d705adf07051bd6bbfb6b90c851d5 (patch)
tree3114e18fe11dcbe0f333fa796ad18e26f690ae52
parentab810e39ba7bf304c9a4a4f7872150347aef3b5c (diff)
delay the creation of the type system
-rw-r--r--Mono.Cecil/ModuleDefinition.cs14
-rw-r--r--dbg/Program.cs2
2 files changed, 13 insertions, 3 deletions
diff --git a/Mono.Cecil/ModuleDefinition.cs b/Mono.Cecil/ModuleDefinition.cs
index dc51658..3e0d216 100644
--- a/Mono.Cecil/ModuleDefinition.cs
+++ b/Mono.Cecil/ModuleDefinition.cs
@@ -123,13 +123,14 @@ namespace Mono.Cecil {
public sealed class ModuleDefinition : ModuleReference, ICustomAttributeProvider {
internal Image Image;
- internal TypeSystem TypeSystem;
internal MetadataSystem MetadataSystem;
internal ReadingMode ReadingMode;
internal IAssemblyResolver AssemblyResolver;
internal ISymbolReaderProvider SymbolReaderProvider;
internal ISymbolReader SymbolReader;
+ TypeSystem type_system;
+
readonly MetadataReader reader;
readonly string fq_name;
@@ -210,6 +211,16 @@ namespace Mono.Cecil {
}
}
#endif
+
+ internal TypeSystem TypeSystem {
+ get {
+ if (type_system == null)
+ type_system = TypeSystem.CreateTypeSystem (this);
+
+ return type_system;
+ }
+ }
+
public bool HasAssemblyReferences {
get {
if (references != null)
@@ -363,7 +374,6 @@ namespace Mono.Cecil {
internal ModuleDefinition ()
{
- this.TypeSystem = TypeSystem.CreateTypeSystem (this);
this.MetadataSystem = new MetadataSystem ();
this.token = new MetadataToken (TokenType.Module, 1);
this.AssemblyResolver = GlobalAssemblyResolver.Instance;
diff --git a/dbg/Program.cs b/dbg/Program.cs
index dceea7c..260b744 100644
--- a/dbg/Program.cs
+++ b/dbg/Program.cs
@@ -54,7 +54,7 @@ namespace Mono.Cecil.Debug {
static ModuleDefinition GetCurrentModule ()
{
- return GetModule (typeof (ModuleDefinition).Module.FullyQualifiedName);
+ return GetModule (typeof (object).Module.FullyQualifiedName);
}
}
}