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

github.com/mono/ikdasm.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Frijters <jeroen@frijters.net>2015-04-07 14:57:13 +0300
committerJeroen Frijters <jeroen@frijters.net>2015-04-07 14:57:13 +0300
commit7cdbd3a6704439243cbf7baead14a129b25e2113 (patch)
tree5ecee42b5d7704c0e35ba9784aa243af3891280f
parent8093e6b7fd791b3e1dbe69ece5dbeb2fa0bbd4c6 (diff)
Added pinvokeimpl decoding for fields.
-rw-r--r--Disassembler.cs11
1 files changed, 7 insertions, 4 deletions
diff --git a/Disassembler.cs b/Disassembler.cs
index b7e5c1a..c88704c 100644
--- a/Disassembler.cs
+++ b/Disassembler.cs
@@ -1476,20 +1476,19 @@ namespace Ildasm
;
}
- void WritePInvokeImpl(LineWriter lw, MethodBase method)
+ void WritePInvokeImpl(LineWriter lw, MemberInfo member)
{
lw.Write("pinvokeimpl(");
- MethodInfo mi = method as MethodInfo;
ImplMapFlags flags;
string importName;
string importScope;
- if (mi != null && mi.__TryGetImplMap(out flags, out importName, out importScope))
+ if (member.Module.__TryGetImplMap(member.MetadataToken, out flags, out importName, out importScope))
{
if (importScope != null)
{
lw.Write("\"{0}\"", EscapePInvoke(importScope));
}
- if (importName != null && importName != method.Name)
+ if (importName != null && importName != member.Name)
{
lw.Write(" as \"{0}\"", EscapePInvoke(importName));
}
@@ -1954,6 +1953,10 @@ namespace Ildasm
{
lw.Write("notserialized ");
}
+ if ((field.Attributes & FieldAttributes.PinvokeImpl) != 0)
+ {
+ WritePInvokeImpl(lw, field);
+ }
if ((field.Attributes & FieldAttributes.HasFieldMarshal) != 0)
{
FieldMarshal marshal;