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

github.com/mono/ikvm-fork.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZoltan Varga <vargaz@gmail.com>2020-07-15 12:25:36 +0300
committerZoltan Varga <vargaz@gmail.com>2020-07-15 12:25:36 +0300
commit18355d7d673a218c8b79954064b1eaa9dc91e0c6 (patch)
tree500ca0150e630f9b08322a5fd405ca1f89c6992f
parent8362227c5ba876d9ab3bcd765ca9e1921b2dafa0 (diff)
Add support for the unmanaged (0x9) calling convention from .net core.
-rw-r--r--reflect/MethodSignature.cs6
1 files changed, 5 insertions, 1 deletions
diff --git a/reflect/MethodSignature.cs b/reflect/MethodSignature.cs
index 189f13b2..1d51421f 100644
--- a/reflect/MethodSignature.cs
+++ b/reflect/MethodSignature.cs
@@ -146,7 +146,7 @@ namespace IKVM.Reflection
System.Runtime.InteropServices.CallingConvention unmanagedCallingConvention = 0;
bool unmanaged;
byte flags = br.ReadByte();
- switch (flags & 7)
+ switch (flags & 0xf)
{
case DEFAULT:
callingConvention = CallingConventions.Standard;
@@ -168,6 +168,10 @@ namespace IKVM.Reflection
unmanagedCallingConvention = System.Runtime.InteropServices.CallingConvention.FastCall;
unmanaged = true;
break;
+ case 0x09: // UNMANAGED
+ unmanagedCallingConvention = (System.Runtime.InteropServices.CallingConvention)0x9;
+ unmanaged = true;
+ break;
case VARARG:
callingConvention = CallingConventions.VarArgs;
unmanaged = false;