зеркало из https://github.com/mono/ikvm-fork.git
Added new public API Module.__ResolveTypeSpecCustomModifiers() to resolve the (useless) custom modifiers that can be put on TypeSpecs.
This commit is contained in:
Родитель
32ee764929
Коммит
cad052fcaf
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (C) 2009-2012 Jeroen Frijters
|
||||
Copyright (C) 2009-2013 Jeroen Frijters
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
|
@ -287,6 +287,11 @@ namespace IKVM.Reflection
|
|||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public virtual CustomModifiers __ResolveTypeSpecCustomModifiers(int typeSpecToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public int MetadataToken
|
||||
{
|
||||
get { return IsResource() ? 0 : 1; }
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (C) 2009-2012 Jeroen Frijters
|
||||
Copyright (C) 2009-2013 Jeroen Frijters
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
|
@ -759,6 +759,16 @@ namespace IKVM.Reflection.Reader
|
|||
}
|
||||
}
|
||||
|
||||
public override CustomModifiers __ResolveTypeSpecCustomModifiers(int typeSpecToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
|
||||
{
|
||||
int index = (typeSpecToken & 0xFFFFFF) - 1;
|
||||
if (typeSpecToken >> 24 != TypeSpecTable.Index || index < 0 || index >= TypeSpec.RowCount)
|
||||
{
|
||||
throw TokenOutOfRangeException(typeSpecToken);
|
||||
}
|
||||
return CustomModifiers.Read(this, ByteReader.FromBlob(blobHeap, TypeSpec.records[index]), new GenericContext(genericTypeArguments, genericMethodArguments));
|
||||
}
|
||||
|
||||
public override string ScopeName
|
||||
{
|
||||
get { return GetString(ModuleTable.records[0].Name); }
|
||||
|
|
Загрузка…
Ссылка в новой задаче