Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
StubHelpers.cs
Go to the documentation of this file.
3
4namespace System.StubHelpers;
5
6internal static class StubHelpers
7{
8 [ThreadStatic]
10
11 [MethodImpl(MethodImplOptions.InternalCall)]
12 internal static extern void InitDeclaringType(IntPtr pMD);
13
14 [MethodImpl(MethodImplOptions.InternalCall)]
15 internal static extern IntPtr GetNDirectTarget(IntPtr pMD);
16
17 [MethodImpl(MethodImplOptions.InternalCall)]
18 internal static extern IntPtr GetDelegateTarget(Delegate pThis, ref IntPtr pStubArg);
19
20 [MethodImpl(MethodImplOptions.InternalCall)]
21 internal static extern void ClearLastError();
22
23 [MethodImpl(MethodImplOptions.InternalCall)]
24 internal static extern void SetLastError();
25
26 [MethodImpl(MethodImplOptions.InternalCall)]
27 internal static extern void ThrowInteropParamException(int resID, int paramIdx);
28
29 internal static IntPtr AddToCleanupList(ref CleanupWorkListElement pCleanupWorkList, SafeHandle handle)
30 {
31 SafeHandleCleanupWorkListElement safeHandleCleanupWorkListElement = new SafeHandleCleanupWorkListElement(handle);
32 CleanupWorkListElement.AddToCleanupList(ref pCleanupWorkList, safeHandleCleanupWorkListElement);
33 return safeHandleCleanupWorkListElement.AddRef();
34 }
35
36 internal static void KeepAliveViaCleanupList(ref CleanupWorkListElement pCleanupWorkList, object obj)
37 {
39 CleanupWorkListElement.AddToCleanupList(ref pCleanupWorkList, newElement);
40 }
41
42 internal static void DestroyCleanupList(ref CleanupWorkListElement pCleanupWorkList)
43 {
44 if (pCleanupWorkList != null)
45 {
46 pCleanupWorkList.Destroy();
47 pCleanupWorkList = null;
48 }
49 }
50
51 internal static Exception GetHRExceptionObject(int hr)
52 {
55 return ex;
56 }
57
58 [MethodImpl(MethodImplOptions.InternalCall)]
59 internal static extern Exception InternalGetHRExceptionObject(int hr);
60
61 internal static Exception GetCOMHRExceptionObject(int hr, IntPtr pCPCMD, object pThis)
62 {
63 Exception ex = InternalGetCOMHRExceptionObject(hr, pCPCMD, pThis);
65 return ex;
66 }
67
68 [MethodImpl(MethodImplOptions.InternalCall)]
69 internal static extern Exception InternalGetCOMHRExceptionObject(int hr, IntPtr pCPCMD, object pThis);
70
78
79 [MethodImpl(MethodImplOptions.InternalCall)]
80 internal static extern IntPtr CreateCustomMarshalerHelper(IntPtr pMD, int paramToken, IntPtr hndManagedType);
81
82 internal static IntPtr SafeHandleAddRef(SafeHandle pHandle, ref bool success)
83 {
84 if (pHandle == null)
85 {
87 }
88 pHandle.DangerousAddRef(ref success);
89 return pHandle.DangerousGetHandle();
90 }
91
92 internal static void SafeHandleRelease(SafeHandle pHandle)
93 {
94 if (pHandle == null)
95 {
97 }
98 pHandle.DangerousRelease();
99 }
100
101 [MethodImpl(MethodImplOptions.InternalCall)]
102 internal static extern IntPtr GetCOMIPFromRCW(object objSrc, IntPtr pCPCMD, out IntPtr ppTarget, out bool pfNeedsRelease);
103
104 [MethodImpl(MethodImplOptions.InternalCall)]
105 internal static extern IntPtr ProfilerBeginTransitionCallback(IntPtr pSecretParam, IntPtr pThread, object pThis);
106
107 [MethodImpl(MethodImplOptions.InternalCall)]
108 internal static extern void ProfilerEndTransitionCallback(IntPtr pMD, IntPtr pThread);
109
110 internal static void CheckStringLength(int length)
111 {
113 }
114
115 internal static void CheckStringLength(uint length)
116 {
117 if (length > 2147483632)
118 {
120 }
121 }
122
123 [MethodImpl(MethodImplOptions.InternalCall)]
124 internal unsafe static extern void FmtClassUpdateNativeInternal(object obj, byte* pNative, ref CleanupWorkListElement pCleanupWorkList);
125
126 [MethodImpl(MethodImplOptions.InternalCall)]
127 internal unsafe static extern void FmtClassUpdateCLRInternal(object obj, byte* pNative);
128
129 [MethodImpl(MethodImplOptions.InternalCall)]
130 internal unsafe static extern void LayoutDestroyNativeInternal(object obj, byte* pNative);
131
132 [MethodImpl(MethodImplOptions.InternalCall)]
133 internal static extern object AllocateInternal(IntPtr typeHandle);
134
135 [MethodImpl(MethodImplOptions.InternalCall)]
136 internal static extern void MarshalToUnmanagedVaListInternal(IntPtr va_list, uint vaListSize, IntPtr pArgIterator);
137
138 [MethodImpl(MethodImplOptions.InternalCall)]
139 internal static extern void MarshalToManagedVaListInternal(IntPtr va_list, IntPtr pArgIterator);
140
141 [MethodImpl(MethodImplOptions.InternalCall)]
142 internal static extern uint CalcVaListSize(IntPtr va_list);
143
144 [MethodImpl(MethodImplOptions.InternalCall)]
145 internal static extern void ValidateObject(object obj, IntPtr pMD, object pThis);
146
147 [MethodImpl(MethodImplOptions.InternalCall)]
148 internal static extern void LogPinnedArgument(IntPtr localDesc, IntPtr nativeArg);
149
150 [MethodImpl(MethodImplOptions.InternalCall)]
151 internal static extern void ValidateByref(IntPtr byref, IntPtr pMD, object pThis);
152
153 [MethodImpl(MethodImplOptions.InternalCall)]
154 [Intrinsic]
155 internal static extern IntPtr GetStubContext();
156
157 [MethodImpl(MethodImplOptions.InternalCall)]
158 internal static extern IntPtr GetStubContextAddr();
159
160 [MethodImpl(MethodImplOptions.InternalCall)]
161 internal static extern void ArrayTypeCheck(object o, object[] arr);
162
163 [MethodImpl(MethodImplOptions.InternalCall)]
164 internal static extern void MulticastDebuggerTraceHelper(object o, int count);
165
166 [MethodImpl(MethodImplOptions.InternalCall)]
167 internal static extern IntPtr NextCallReturnAddress();
168}
void InternalPreserveStackTrace()
Definition Exception.cs:240
static string Marshaler_StringTooLong
Definition SR.cs:1614
Definition SR.cs:7
static void AddToCleanupList(ref CleanupWorkListElement list, CleanupWorkListElement newElement)
static void CheckStringLength(uint length)
static void InitDeclaringType(IntPtr pMD)
static void MulticastDebuggerTraceHelper(object o, int count)
static uint CalcVaListSize(IntPtr va_list)
static Exception InternalGetCOMHRExceptionObject(int hr, IntPtr pCPCMD, object pThis)
static IntPtr GetStubContext()
static void MarshalToUnmanagedVaListInternal(IntPtr va_list, uint vaListSize, IntPtr pArgIterator)
static object AllocateInternal(IntPtr typeHandle)
static void MarshalToManagedVaListInternal(IntPtr va_list, IntPtr pArgIterator)
static void ValidateByref(IntPtr byref, IntPtr pMD, object pThis)
static void CheckStringLength(int length)
static void ProfilerEndTransitionCallback(IntPtr pMD, IntPtr pThread)
static void SafeHandleRelease(SafeHandle pHandle)
static IntPtr NextCallReturnAddress()
static Exception GetPendingExceptionObject()
static Exception s_pendingExceptionObject
Definition StubHelpers.cs:9
static Exception InternalGetHRExceptionObject(int hr)
static void ValidateObject(object obj, IntPtr pMD, object pThis)
static void ThrowInteropParamException(int resID, int paramIdx)
static IntPtr AddToCleanupList(ref CleanupWorkListElement pCleanupWorkList, SafeHandle handle)
static IntPtr GetStubContextAddr()
static unsafe void FmtClassUpdateNativeInternal(object obj, byte *pNative, ref CleanupWorkListElement pCleanupWorkList)
static IntPtr SafeHandleAddRef(SafeHandle pHandle, ref bool success)
static Exception GetHRExceptionObject(int hr)
static IntPtr GetDelegateTarget(Delegate pThis, ref IntPtr pStubArg)
static void KeepAliveViaCleanupList(ref CleanupWorkListElement pCleanupWorkList, object obj)
static unsafe void FmtClassUpdateCLRInternal(object obj, byte *pNative)
static IntPtr GetCOMIPFromRCW(object objSrc, IntPtr pCPCMD, out IntPtr ppTarget, out bool pfNeedsRelease)
static void DestroyCleanupList(ref CleanupWorkListElement pCleanupWorkList)
static void LogPinnedArgument(IntPtr localDesc, IntPtr nativeArg)
static unsafe void LayoutDestroyNativeInternal(object obj, byte *pNative)
static IntPtr ProfilerBeginTransitionCallback(IntPtr pSecretParam, IntPtr pThread, object pThis)
static Exception GetCOMHRExceptionObject(int hr, IntPtr pCPCMD, object pThis)
static void ArrayTypeCheck(object o, object[] arr)
static IntPtr CreateCustomMarshalerHelper(IntPtr pMD, int paramToken, IntPtr hndManagedType)
static IntPtr GetNDirectTarget(IntPtr pMD)
static void ThrowArgumentNullException(string name)