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

◆ Read< T >()

unsafe T System.Runtime.InteropServices.SafeBuffer.Read< T > ( ulong byteOffset)
inlineinherited
Type Constraints
T :struct 

Definition at line 80 of file SafeBuffer.cs.

80 : struct
81 {
83 {
84 throw NotInitialized();
85 }
86 uint num = SizeOf<T>();
87 byte* ptr = (byte*)(void*)handle + byteOffset;
88 SpaceCheck(ptr, num);
89 T source = default(T);
90 bool success = false;
91 try
92 {
93 DangerousAddRef(ref success);
94 Buffer.Memmove(ref Unsafe.As<T, byte>(ref source), ref *ptr, num);
95 return source;
96 }
97 finally
98 {
99 if (success)
100 {
102 }
103 }
104 }
unsafe void SpaceCheck(byte *ptr, nuint sizeInBytes)
static InvalidOperationException NotInitialized()
void DangerousAddRef(ref bool success)
Definition SafeHandle.cs:76

References System.Runtime.InteropServices.SafeBuffer._numBytes, System.Runtime.InteropServices.SafeHandle.DangerousAddRef(), System.Runtime.InteropServices.SafeHandle.DangerousRelease(), System.Runtime.InteropServices.SafeHandle.handle, System.Buffer.Memmove(), System.Runtime.InteropServices.SafeBuffer.NotInitialized(), System.Runtime.InteropServices.SafeBuffer.SizeOf< T >(), System.source, System.Runtime.InteropServices.SafeBuffer.SpaceCheck(), and System.Runtime.InteropServices.SafeBuffer.Uninitialized.