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

◆ MemberwiseClone()

unsafe object System.Object.MemberwiseClone ( )
inlineprotected

Definition at line 18 of file Object.cs.

19 {
21 nuint rawObjectDataSize = RuntimeHelpers.GetRawObjectDataSize(obj);
22 ref byte rawData = ref this.GetRawData();
23 ref byte rawData2 = ref obj.GetRawData();
24 if (RuntimeHelpers.GetMethodTable(obj)->ContainsGCPointers)
25 {
26 Buffer.BulkMoveWithWriteBarrier(ref rawData2, ref rawData, rawObjectDataSize);
27 }
28 else
29 {
30 Buffer.Memmove(ref rawData2, ref rawData, rawObjectDataSize);
31 }
32 return obj;
33 }
static unsafe nuint GetRawObjectDataSize(object obj)
static object AllocateUninitializedClone(object obj)
static unsafe MethodTable * GetMethodTable(object obj)

References System.Runtime.CompilerServices.RuntimeHelpers.AllocateUninitializedClone(), System.Buffer.BulkMoveWithWriteBarrier(), System.Runtime.CompilerServices.RuntimeHelpers.GetMethodTable(), System.Runtime.CompilerServices.RuntimeHelpers.GetRawObjectDataSize(), System.Buffer.Memmove(), and System.obj.