diff options
author | jbevain <jbevain@gmail.com> | 2010-06-14 20:43:53 +0400 |
---|---|---|
committer | jbevain <jbevain@gmail.com> | 2010-06-14 20:43:53 +0400 |
commit | f483acec646d705adf07051bd6bbfb6b90c851d5 (patch) | |
tree | 3114e18fe11dcbe0f333fa796ad18e26f690ae52 | |
parent | ab810e39ba7bf304c9a4a4f7872150347aef3b5c (diff) |
delay the creation of the type system
-rw-r--r-- | Mono.Cecil/ModuleDefinition.cs | 14 | ||||
-rw-r--r-- | dbg/Program.cs | 2 |
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); } } } |