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

◆ Write() [4/13]

unsafe void System.IO.UnmanagedMemoryAccessor.Write ( long position,
decimal value )
inlineinherited

Definition at line 436 of file UnmanagedMemoryAccessor.cs.

437 {
438 EnsureSafeToWrite(position, 16);
439 Span<int> destination = stackalloc int[4];
440 decimal.TryGetBits(value, destination, out var _);
441 byte* pointer = null;
442 try
443 {
445 pointer += _offset + position;
446 Unsafe.WriteUnaligned(pointer, destination[0]);
447 Unsafe.WriteUnaligned(pointer + 4, destination[1]);
448 Unsafe.WriteUnaligned(pointer + 8, destination[2]);
449 Unsafe.WriteUnaligned(pointer + 12, destination[3]);
450 }
451 finally
452 {
453 if (pointer != null)
454 {
456 }
457 }
458 }
void EnsureSafeToWrite(long position, int sizeOfType)
unsafe void AcquirePointer(ref byte *pointer)
Definition SafeBuffer.cs:58

References System.IO.UnmanagedMemoryAccessor._buffer, System.IO.UnmanagedMemoryAccessor._offset, System.Runtime.InteropServices.SafeBuffer.AcquirePointer(), System.destination, System.IO.UnmanagedMemoryAccessor.EnsureSafeToWrite(), System.pointer, System.Runtime.InteropServices.SafeBuffer.ReleasePointer(), and System.value.