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

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Safar <marek.safar@gmail.com>2018-09-19 15:19:22 +0300
committerGitHub <noreply@github.com>2018-09-19 15:19:22 +0300
commitefd29b5cf854679349066e22ef9038b8cfe76d94 (patch)
tree2de750c1ac8a487d7f6d149592a6362ade6a5a77 /src/Common/src/TypeSystem/Ecma/EcmaModule.cs
parentf9124d69e41d42196510dd7234b2d53fed48ad4c (diff)
parent49f9ed0e66fc2d4cd682821396c6af5e80182048 (diff)
Merge pull request #25 from ntherning/bump-corert
Bump to latest upstream
Diffstat (limited to 'src/Common/src/TypeSystem/Ecma/EcmaModule.cs')
-rw-r--r--src/Common/src/TypeSystem/Ecma/EcmaModule.cs13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/Common/src/TypeSystem/Ecma/EcmaModule.cs b/src/Common/src/TypeSystem/Ecma/EcmaModule.cs
index 14b3d51b4..37f82ca03 100644
--- a/src/Common/src/TypeSystem/Ecma/EcmaModule.cs
+++ b/src/Common/src/TypeSystem/Ecma/EcmaModule.cs
@@ -9,8 +9,6 @@ using System.Reflection.Metadata;
using System.Reflection.Metadata.Ecma335;
using System.Reflection.PortableExecutable;
-using Internal.TypeSystem;
-
namespace Internal.TypeSystem.Ecma
{
public partial class EcmaModule : ModuleDesc
@@ -147,6 +145,10 @@ namespace Internal.TypeSystem.Ecma
item = _module;
break;
+ case HandleKind.ModuleReference:
+ item = _module.ResolveModuleReference((ModuleReferenceHandle)handle);
+ break;
+
default:
throw new BadImageFormatException("Unknown metadata token type: " + handle.Kind);
}
@@ -165,6 +167,13 @@ namespace Internal.TypeSystem.Ecma
}
}
+ private object ResolveModuleReference(ModuleReferenceHandle handle)
+ {
+ ModuleReference moduleReference = _metadataReader.GetModuleReference(handle);
+ string fileName = _metadataReader.GetString(moduleReference.Name);
+ return Context.ResolveModule(this, fileName);
+ }
+
private LockFreeReaderHashtable<EntityHandle, IEntityHandleObject> _resolvedTokens;
internal EcmaModule(TypeSystemContext context, PEReader peReader, MetadataReader metadataReader)