diff options
author | Jb Evain <jbevain@gmail.com> | 2015-04-30 12:39:15 +0300 |
---|---|---|
committer | Jb Evain <jbevain@gmail.com> | 2015-04-30 12:39:15 +0300 |
commit | 4cb28458c7bd61449b2814920acbf9fe3835be30 (patch) | |
tree | e432dbeb38c0c5db2ff5f39d8d833b33f845893e | |
parent | 0222c93ba60e830290fe2a3695f5e6b2aa007896 (diff) |
Rename corlib to core_library
-rw-r--r-- | Mono.Cecil/TypeSystem.cs | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/Mono.Cecil/TypeSystem.cs b/Mono.Cecil/TypeSystem.cs index 3ab6fe0..ccaef1f 100644 --- a/Mono.Cecil/TypeSystem.cs +++ b/Mono.Cecil/TypeSystem.cs @@ -78,7 +78,7 @@ namespace Mono.Cecil { sealed class CommonTypeSystem : TypeSystem { - AssemblyNameReference corlib; + AssemblyNameReference core_library; public CommonTypeSystem (ModuleDefinition module) : base (module) @@ -90,31 +90,43 @@ namespace Mono.Cecil { return CreateTypeReference (@namespace, name); } - public AssemblyNameReference GetCorlibReference () + public AssemblyNameReference GetCoreLibraryReference () { - if (corlib != null) - return corlib; + if (core_library != null) + return core_library; const string mscorlib = "mscorlib"; const string system_runtime = "System.Runtime"; - var references = module.AssemblyReferences; + if (TryLookupReference (mscorlib, out core_library)) + return core_library; - for (int i = 0; i < references.Count; i++) { - var reference = references [i]; - if (reference.Name == mscorlib || reference.Name == system_runtime) - return corlib = reference; - } + if (TryLookupReference (system_runtime, out core_library)) + return core_library; - corlib = new AssemblyNameReference { + core_library = new AssemblyNameReference { Name = mscorlib, Version = GetCorlibVersion (), PublicKeyToken = new byte [] { 0xb7, 0x7a, 0x5c, 0x56, 0x19, 0x34, 0xe0, 0x89 }, }; - references.Add (corlib); + module.AssemblyReferences.Add (core_library); + + return core_library; + } + + bool TryLookupReference (string name, out AssemblyNameReference reference) + { + var references = module.AssemblyReferences; + + for (int i = 0; i < references.Count; i++) { + reference = references [i]; + if (reference.Name == name) + return true; + } - return corlib; + reference = null; + return false; } Version GetCorlibVersion () @@ -134,7 +146,7 @@ namespace Mono.Cecil { TypeReference CreateTypeReference (string @namespace, string name) { - return new TypeReference (@namespace, name, module, GetCorlibReference ()); + return new TypeReference (@namespace, name, module, GetCoreLibraryReference ()); } } @@ -208,7 +220,7 @@ namespace Mono.Cecil { if (common == null) return module; - return common.GetCorlibReference (); + return common.GetCoreLibraryReference (); } } |