Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ConvertToManaged()

unsafe void System.StubHelpers.AsAnyMarshaler.ConvertToManaged ( object pManagedHome,
IntPtr pNativeHome )
inlinepackage

Definition at line 252 of file AsAnyMarshaler.cs.

253 {
254 switch (backPropAction)
255 {
256 case BackPropAction.Array:
257 MngdNativeArrayMarshaler.ConvertContentsToManaged(pvArrayMarshaler, ref pManagedHome, new IntPtr(&pNativeHome));
258 break;
259 case BackPropAction.Layout:
260 StubHelpers.FmtClassUpdateCLRInternal(pManagedHome, (byte*)(void*)pNativeHome);
261 break;
262 case BackPropAction.StringBuilderAnsi:
263 {
264 int newLength2 = ((!(pNativeHome == IntPtr.Zero)) ? string.strlen((byte*)(void*)pNativeHome) : 0);
265 ((StringBuilder)pManagedHome).ReplaceBufferAnsiInternal((sbyte*)(void*)pNativeHome, newLength2);
266 break;
267 }
268 case BackPropAction.StringBuilderUnicode:
269 {
270 int newLength = ((!(pNativeHome == IntPtr.Zero)) ? string.wcslen((char*)(void*)pNativeHome) : 0);
271 ((StringBuilder)pManagedHome).ReplaceBufferInternal((char*)(void*)pNativeHome, newLength);
272 break;
273 }
274 }
275 }

References System.StubHelpers.AsAnyMarshaler.backPropAction, System.StubHelpers.MngdNativeArrayMarshaler.ConvertContentsToManaged(), System.StubHelpers.StubHelpers.FmtClassUpdateCLRInternal(), System.StubHelpers.AsAnyMarshaler.pvArrayMarshaler, and System.IntPtr.Zero.

Referenced by System.Runtime.InteropServices.Marshal.WriteValueSlow< T >().