Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
Signature.cs
Go to the documentation of this file.
4
5namespace System;
6
7internal class Signature
8{
10
12
14
15 internal object m_keepalive;
16
17 internal unsafe void* m_sig;
18
20
21 internal int m_nSizeOfArgStack;
22
23 internal int m_csig;
24
26
28
30
32
34
35 [MethodImpl(MethodImplOptions.InternalCall)]
36 [MemberNotNull("m_arguments")]
37 [MemberNotNull("m_returnTypeORfieldType")]
38 private unsafe extern void GetSignature(void* pCorSig, int cCorSig, RuntimeFieldHandleInternal fieldHandle, IRuntimeMethodInfo methodHandle, RuntimeType declaringType);
39
40 public unsafe Signature(IRuntimeMethodInfo method, RuntimeType[] arguments, RuntimeType returnType, CallingConventions callingConvention)
41 {
42 m_pMethod = method.Value;
43 m_arguments = arguments;
44 m_returnTypeORfieldType = returnType;
45 m_managedCallingConventionAndArgIteratorFlags = (byte)callingConvention;
46 GetSignature(null, 0, default(RuntimeFieldHandleInternal), method, null);
47 }
48
49 public unsafe Signature(IRuntimeMethodInfo methodHandle, RuntimeType declaringType)
50 {
51 GetSignature(null, 0, default(RuntimeFieldHandleInternal), methodHandle, declaringType);
52 }
53
54 public unsafe Signature(IRuntimeFieldInfo fieldHandle, RuntimeType declaringType)
55 {
56 GetSignature(null, 0, fieldHandle.Value, null, declaringType);
57 GC.KeepAlive(fieldHandle);
58 }
59
60 public unsafe Signature(void* pCorSig, int cCorSig, RuntimeType declaringType)
61 {
62 GetSignature(pCorSig, cCorSig, default(RuntimeFieldHandleInternal), null, declaringType);
63 }
64
65 [MethodImpl(MethodImplOptions.InternalCall)]
66 internal static extern bool CompareSig(Signature sig1, Signature sig2);
67
68 [MethodImpl(MethodImplOptions.InternalCall)]
69 internal extern Type[] GetCustomModifiers(int position, bool required);
70}
static void KeepAlive(object? obj)
Definition GC.cs:180
Definition GC.cs:8
static bool CompareSig(Signature sig1, Signature sig2)
RuntimeType FieldType
Definition Signature.cs:33
unsafe Signature(IRuntimeFieldInfo fieldHandle, RuntimeType declaringType)
Definition Signature.cs:54
unsafe Signature(void *pCorSig, int cCorSig, RuntimeType declaringType)
Definition Signature.cs:60
unsafe Signature(IRuntimeMethodInfo method, RuntimeType[] arguments, RuntimeType returnType, CallingConventions callingConvention)
Definition Signature.cs:40
unsafe Signature(IRuntimeMethodInfo methodHandle, RuntimeType declaringType)
Definition Signature.cs:49
RuntimeType ReturnType
Definition Signature.cs:31
RuntimeType m_declaringType
Definition Signature.cs:11
unsafe void * m_sig
Definition Signature.cs:17
RuntimeType[] Arguments
Definition Signature.cs:29
RuntimeType[] m_arguments
Definition Signature.cs:9
Type[] GetCustomModifiers(int position, bool required)
object m_keepalive
Definition Signature.cs:15
RuntimeMethodHandleInternal m_pMethod
Definition Signature.cs:25
int m_managedCallingConventionAndArgIteratorFlags
Definition Signature.cs:19
unsafe void GetSignature(void *pCorSig, int cCorSig, RuntimeFieldHandleInternal fieldHandle, IRuntimeMethodInfo methodHandle, RuntimeType declaringType)
RuntimeType m_returnTypeORfieldType
Definition Signature.cs:13
RuntimeFieldHandleInternal Value
RuntimeMethodHandleInternal Value