зеркало из https://github.com/mono/ikvm-fork.git
Added another overload of the public API Module.__GetSectionInfo() that returns more information about the section.
This commit is contained in:
Родитель
cad052fcaf
Коммит
ead034f0f5
|
@ -207,7 +207,16 @@ namespace IKVM.Reflection
|
|||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public virtual bool __GetSectionInfo(int rva, out string name, out int characteristics)
|
||||
public bool __GetSectionInfo(int rva, out string name, out int characteristics)
|
||||
{
|
||||
int virtualAddress;
|
||||
int virtualSize;
|
||||
int pointerToRawData;
|
||||
int sizeOfRawData;
|
||||
return __GetSectionInfo(rva, out name, out characteristics, out virtualAddress, out virtualSize, out pointerToRawData, out sizeOfRawData);
|
||||
}
|
||||
|
||||
public virtual bool __GetSectionInfo(int rva, out string name, out int characteristics, out int virtualAddress, out int virtualSize, out int pointerToRawData, out int sizeOfRawData)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
|
|
@ -1155,9 +1155,9 @@ namespace IKVM.Reflection.Reader
|
|||
return peFile.RvaToFileOffset((uint)rva);
|
||||
}
|
||||
|
||||
public override bool __GetSectionInfo(int rva, out string name, out int characteristics)
|
||||
public override bool __GetSectionInfo(int rva, out string name, out int characteristics, out int virtualAddress, out int virtualSize, out int pointerToRawData, out int sizeOfRawData)
|
||||
{
|
||||
return peFile.GetSectionInfo(rva, out name, out characteristics);
|
||||
return peFile.GetSectionInfo(rva, out name, out characteristics, out virtualAddress, out virtualSize, out pointerToRawData, out sizeOfRawData);
|
||||
}
|
||||
|
||||
public override int __ReadDataFromRVA(int rva, byte[] data, int offset, int length)
|
||||
|
|
|
@ -316,7 +316,7 @@ namespace IKVM.Reflection.Reader
|
|||
throw new BadImageFormatException();
|
||||
}
|
||||
|
||||
internal bool GetSectionInfo(int rva, out string name, out int characteristics)
|
||||
internal bool GetSectionInfo(int rva, out string name, out int characteristics, out int virtualAddress, out int virtualSize, out int pointerToRawData, out int sizeOfRawData)
|
||||
{
|
||||
for (int i = 0; i < sections.Length; i++)
|
||||
{
|
||||
|
@ -324,11 +324,19 @@ namespace IKVM.Reflection.Reader
|
|||
{
|
||||
name = sections[i].Name;
|
||||
characteristics = (int)sections[i].Characteristics;
|
||||
virtualAddress = (int)sections[i].VirtualAddress;
|
||||
virtualSize = (int)sections[i].VirtualSize;
|
||||
pointerToRawData = (int)sections[i].PointerToRawData;
|
||||
sizeOfRawData = (int)sections[i].SizeOfRawData;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
name = null;
|
||||
characteristics = 0;
|
||||
virtualAddress = 0;
|
||||
virtualSize = 0;
|
||||
pointerToRawData = 0;
|
||||
sizeOfRawData = 0;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче