зеркало из https://github.com/mono/ikvm-fork.git
Added API extension __ImageBase to Module.
This commit is contained in:
Родитель
a86c81919a
Коммит
1c8b1c0cd5
|
@ -740,5 +740,10 @@ namespace IKVM.Reflection.Emit
|
|||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
protected override long GetImageBaseImpl()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1167,12 +1167,17 @@ namespace IKVM.Reflection.Emit
|
|||
}
|
||||
|
||||
// non-standard API
|
||||
public long __ImageBase
|
||||
public new long __ImageBase
|
||||
{
|
||||
get { return imageBaseAddress; }
|
||||
set { imageBaseAddress = value; }
|
||||
}
|
||||
|
||||
protected override long GetImageBaseImpl()
|
||||
{
|
||||
return imageBaseAddress;
|
||||
}
|
||||
|
||||
public override int MDStreamVersion
|
||||
{
|
||||
get { return asm.mdStreamVersion; }
|
||||
|
|
|
@ -338,6 +338,11 @@ namespace IKVM.Reflection
|
|||
{
|
||||
throw new MissingModuleException(this);
|
||||
}
|
||||
|
||||
protected override long GetImageBaseImpl()
|
||||
{
|
||||
throw new MissingModuleException(this);
|
||||
}
|
||||
}
|
||||
|
||||
sealed class MissingType : Type
|
||||
|
|
|
@ -410,6 +410,13 @@ namespace IKVM.Reflection
|
|||
get { return false; }
|
||||
}
|
||||
|
||||
public long __ImageBase
|
||||
{
|
||||
get { return GetImageBaseImpl(); }
|
||||
}
|
||||
|
||||
protected abstract long GetImageBaseImpl();
|
||||
|
||||
internal Type CanonicalizeType(Type type)
|
||||
{
|
||||
Type canon;
|
||||
|
|
|
@ -205,6 +205,11 @@ namespace IKVM.Reflection.Reader
|
|||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
protected override long GetImageBaseImpl()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
}
|
||||
|
||||
internal static Type Make(int position)
|
||||
|
|
|
@ -1050,5 +1050,10 @@ namespace IKVM.Reflection.Reader
|
|||
PopulateTypeDef();
|
||||
manifestModule.ExportTypes(typeDefs, fileToken);
|
||||
}
|
||||
|
||||
protected override long GetImageBaseImpl()
|
||||
{
|
||||
return (long)peFile.OptionalHeader.ImageBase;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -115,6 +115,11 @@ namespace IKVM.Reflection.Reader
|
|||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
protected override long GetImageBaseImpl()
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
internal override Type FindType(TypeName typeName)
|
||||
{
|
||||
return null;
|
||||
|
|
Загрузка…
Ссылка в новой задаче