|
|
|
@ -46,23 +46,30 @@ namespace ICSharpCode.Decompiler.TypeSystem |
|
|
|
&& modReturn.Modifier.Namespace == "System.Runtime.CompilerServices") |
|
|
|
&& modReturn.Modifier.Namespace == "System.Runtime.CompilerServices") |
|
|
|
{ |
|
|
|
{ |
|
|
|
returnType = modReturn.ElementType; |
|
|
|
returnType = modReturn.ElementType; |
|
|
|
switch (modReturn.Modifier.Name) |
|
|
|
if (callingConvention == SignatureCallingConvention.Unmanaged) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case "CallConvCdecl": |
|
|
|
switch (modReturn.Modifier.Name) |
|
|
|
callingConvention = SignatureCallingConvention.CDecl; |
|
|
|
{ |
|
|
|
break; |
|
|
|
case "CallConvCdecl": |
|
|
|
case "CallConvFastcall": |
|
|
|
callingConvention = SignatureCallingConvention.CDecl; |
|
|
|
callingConvention = SignatureCallingConvention.FastCall; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case "CallConvFastcall": |
|
|
|
case "CallConvStdcall": |
|
|
|
callingConvention = SignatureCallingConvention.FastCall; |
|
|
|
callingConvention = SignatureCallingConvention.StdCall; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case "CallConvStdcall": |
|
|
|
case "CallConvThiscall": |
|
|
|
callingConvention = SignatureCallingConvention.StdCall; |
|
|
|
callingConvention = SignatureCallingConvention.ThisCall; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case "CallConvThiscall": |
|
|
|
default: |
|
|
|
callingConvention = SignatureCallingConvention.ThisCall; |
|
|
|
customCallConvs.Add(modReturn.Modifier); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
|
|
|
|
customCallConvs.Add(modReturn.Modifier); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
customCallConvs.Add(modReturn.Modifier); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
|