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

◆ Span

unsafe Span<T> System.Memory< T >.Span
get

Definition at line 27 of file Memory.cs.

28 {
29 [MethodImpl(MethodImplOptions.AggressiveInlining)]
30 get
31 {
32 ref T ptr = ref Unsafe.NullRef<T>();
33 int length = 0;
34 object @object = _object;
35 if (@object != null)
36 {
37 if (typeof(T) == typeof(char) && @object.GetType() == typeof(string))
38 {
39 ptr = ref Unsafe.As<char, T>(ref Unsafe.As<string>(@object).GetRawStringData());
40 length = Unsafe.As<string>(@object).Length;
41 }
42 else if (RuntimeHelpers.ObjectHasComponentSize(@object))
43 {
44 ptr = ref MemoryMarshal.GetArrayDataReference(Unsafe.As<T[]>(@object));
45 length = Unsafe.As<T[]>(@object).Length;
46 }
47 else
48 {
49 Span<T> span = Unsafe.As<MemoryManager<T>>(@object).GetSpan();
50 ptr = ref MemoryMarshal.GetReference(span);
51 length = span.Length;
52 }
53 nuint num = (uint)_index & 0x7FFFFFFFu;
54 int length2 = _length;
55 if ((ulong)((long)num + (long)(uint)length2) > (ulong)(uint)length)
56 {
57 ThrowHelper.ThrowArgumentOutOfRangeException();
58 }
59 ptr = ref Unsafe.Add(ref ptr, (IntPtr)(void*)num);
61 }
62 return new Span<T>(ref ptr, length);
63 }
64 }
static unsafe bool ObjectHasComponentSize(object obj)
static unsafe ref byte GetArrayDataReference(Array array)
readonly int _length
Definition Memory.cs:19
readonly object _object
Definition Memory.cs:15
readonly int _index
Definition Memory.cs:17

Referenced by System.Net.MultiMemory.CopyFrom(), System.IO.Compression.InputBuffer.CopyTo(), System.Net.MultiMemory.CopyTo(), System.Net.Sockets.SocketAsyncEventArgs.DoOperationReceiveFromSingleBuffer(), System.Net.Sockets.SocketAsyncEventArgs.DoOperationReceiveMessageFrom(), System.Net.Sockets.SocketAsyncEventArgs.DoOperationReceiveSingleBuffer(), System.Net.Sockets.SocketAsyncEventArgs.DoOperationSendSingleBuffer(), System.Net.Sockets.SocketAsyncEventArgs.DoOperationSendToSingleBuffer(), System.IO.Compression.InputBuffer.EnsureBitsAvailable(), System.Buffers.ReadOnlySequence< T >.GetFirstSpanSlow(), System.Net.WebSockets.ManagedWebSocket.HandleReceivedCloseAsync(), System.Net.WebSockets.ManagedWebSocket.HandleReceivedPingPongAsync(), System.Net.WebSockets.ManagedWebSocket._003CReceiveAsyncPrivate_003Ed__63< TResult >.MoveNext(), System.Net.WebSockets.ManagedWebSocket._003CEnsureBufferContainsAsync_003Ed__74.MoveNext(), System.IO.Strategies.BufferedFileStreamStrategy._003CReadAsyncSlowPath_003Ed__39.MoveNext(), System.IO.Stream.ReadAsync(), System.Security.Cryptography.KeyFormatHelper.ReadEncryptedPkcs8< TRet >(), System.IO.Compression.InputBuffer.TryLoad16Bits(), System.Net.WebSockets.ManagedWebSocket.TryParseMessageHeaderFromReceiveBuffer(), System.Text.Json.Utf8JsonWriter.WriteBase64Indented(), System.Text.Json.Utf8JsonWriter.WriteBase64Indented(), System.Text.Json.Utf8JsonWriter.WriteBase64Indented(), System.Text.Json.Utf8JsonWriter.WriteBase64Minimized(), System.Text.Json.Utf8JsonWriter.WriteBase64Minimized(), System.Text.Json.Utf8JsonWriter.WriteBase64Minimized(), System.Text.Json.Utf8JsonWriter.WriteCommentIndented(), System.Text.Json.Utf8JsonWriter.WriteCommentIndented(), System.Text.Json.Utf8JsonWriter.WriteCommentMinimized(), System.Text.Json.Utf8JsonWriter.WriteCommentMinimized(), System.Text.Json.Utf8JsonWriter.WriteEndIndented(), System.Text.Json.Utf8JsonWriter.WriteEndMinimized(), System.Text.Json.Utf8JsonWriter.WriteLiteralIndented(), System.Text.Json.Utf8JsonWriter.WriteLiteralIndented(), System.Text.Json.Utf8JsonWriter.WriteLiteralIndented(), System.Text.Json.Utf8JsonWriter.WriteLiteralMinimized(), System.Text.Json.Utf8JsonWriter.WriteLiteralMinimized(), System.Text.Json.Utf8JsonWriter.WriteLiteralMinimized(), System.Text.Json.Utf8JsonWriter.WriteLiteralSection(), System.Text.Json.Utf8JsonWriter.WriteNumberIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberValueIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberValueIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberValueIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberValueIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberValueIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberValueIndented(), System.Text.Json.Utf8JsonWriter.WriteNumberValueMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberValueMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberValueMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberValueMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberValueMinimized(), System.Text.Json.Utf8JsonWriter.WriteNumberValueMinimized(), System.Text.Json.Utf8JsonWriter.WritePropertyNameIndented(), System.Text.Json.Utf8JsonWriter.WritePropertyNameIndented(), System.Text.Json.Utf8JsonWriter.WritePropertyNameMinimized(), System.Text.Json.Utf8JsonWriter.WritePropertyNameMinimized(), System.Text.Json.Utf8JsonWriter.WriteRawValueCore(), System.Text.Json.Utf8JsonWriter.WriteStartIndented(), System.Text.Json.Utf8JsonWriter.WriteStartMinimized(), System.Text.Json.Utf8JsonWriter.WriteStringIndented(), System.Text.Json.Utf8JsonWriter.WriteStringIndented(), System.Text.Json.Utf8JsonWriter.WriteStringIndented(), System.Text.Json.Utf8JsonWriter.WriteStringIndented(), System.Text.Json.Utf8JsonWriter.WriteStringIndented(), System.Text.Json.Utf8JsonWriter.WriteStringIndented(), System.Text.Json.Utf8JsonWriter.WriteStringIndented(), System.Text.Json.Utf8JsonWriter.WriteStringIndented(), System.Text.Json.Utf8JsonWriter.WriteStringIndented(), System.Text.Json.Utf8JsonWriter.WriteStringIndented(), System.Text.Json.Utf8JsonWriter.WriteStringIndented(), System.Text.Json.Utf8JsonWriter.WriteStringIndented(), System.Text.Json.Utf8JsonWriter.WriteStringIndentedPropertyName(), System.Text.Json.Utf8JsonWriter.WriteStringIndentedPropertyName(), System.Text.Json.Utf8JsonWriter.WriteStringMinimized(), System.Text.Json.Utf8JsonWriter.WriteStringMinimized(), System.Text.Json.Utf8JsonWriter.WriteStringMinimized(), System.Text.Json.Utf8JsonWriter.WriteStringMinimized(), System.Text.Json.Utf8JsonWriter.WriteStringMinimized(), System.Text.Json.Utf8JsonWriter.WriteStringMinimized(), System.Text.Json.Utf8JsonWriter.WriteStringMinimized(), System.Text.Json.Utf8JsonWriter.WriteStringMinimized(), System.Text.Json.Utf8JsonWriter.WriteStringMinimized(), System.Text.Json.Utf8JsonWriter.WriteStringMinimized(), System.Text.Json.Utf8JsonWriter.WriteStringMinimized(), System.Text.Json.Utf8JsonWriter.WriteStringMinimized(), System.Text.Json.Utf8JsonWriter.WriteStringMinimizedPropertyName(), System.Text.Json.Utf8JsonWriter.WriteStringMinimizedPropertyName(), System.Text.Json.Utf8JsonWriter.WriteStringPropertyNameSection(), System.Text.Json.Utf8JsonWriter.WriteStringValueIndented(), System.Text.Json.Utf8JsonWriter.WriteStringValueIndented(), System.Text.Json.Utf8JsonWriter.WriteStringValueIndented(), System.Text.Json.Utf8JsonWriter.WriteStringValueMinimized(), System.Text.Json.Utf8JsonWriter.WriteStringValueMinimized(), and System.Text.Json.Utf8JsonWriter.WriteStringValueMinimized().