diff options
author | Ahson Khan <ahkha@microsoft.com> | 2018-03-20 22:27:20 -0700 |
---|---|---|
committer | Ahson Khan <ahkha@microsoft.com> | 2018-03-20 23:35:18 -0700 |
commit | 4113c35a3fcfb3952da7e088158a99f003cf9cd8 (patch) | |
tree | 5c2954a4c67561c1bf64a48b9fe328ed808080f9 | |
parent | a3468372f80e9b8056f668b43a07f8b28de4e10c (diff) | |
download | coreclr-4113c35a3fcfb3952da7e088158a99f003cf9cd8.tar.gz coreclr-4113c35a3fcfb3952da7e088158a99f003cf9cd8.tar.bz2 coreclr-4113c35a3fcfb3952da7e088158a99f003cf9cd8.zip |
API consistency for System.Memory APIs (argument names) (#28160)
* AsBytes and Cast: Change arg name source -> span
* CopyTo: Change arg name array/sequence -> source
* Several APIs: Change arg name arraySegment -> segment
* Several APIs: Change arg name readOnlyMemory -> memory
* BinaryPrimitives and Utf8Formatter: Change arg name buffer -> source or destination
* Base64: Change arg name consumed/written -> bytesConsumed/bytesWritten
* Utf8Parser: Change arg name text -> source
* TryGetOwnedMemory: Change arg name ownedMemory -> owner, index -> start
* BuffersExtensions.Write: Change arg name bufferWriter -> writer
* Span Compare APIs: Change arg name first -> span, second/value -> other
* ROSequence.TryGet & BuffersExtensions: Change arg name data -> memory, sequence -> source
* Fix mistake in BinaryPrimitives Writer APIs, source -> destination.
* BufferExtensions.Write: Change arg name source -> span
* SequencePosition.Equals: Change arg name position -> other
* BufferExtensions ToArray: Change arg name source -> sequence
* Rename leftover arraySegment to segment in MemoryMarshal.TryGetArray
* BufferExtensions.Write: Change arg name span -> value
* Contains, StartsWith, EndsWith: Change arg name other -> value
Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
-rw-r--r-- | src/mscorlib/shared/System/Buffers/OwnedMemory.cs | 2 | ||||
-rw-r--r-- | src/mscorlib/shared/System/Memory.cs | 2 | ||||
-rw-r--r-- | src/mscorlib/shared/System/MemoryExtensions.Fast.cs | 60 | ||||
-rw-r--r-- | src/mscorlib/shared/System/MemoryExtensions.cs | 100 | ||||
-rw-r--r-- | src/mscorlib/shared/System/ReadOnlyMemory.cs | 2 | ||||
-rw-r--r-- | src/mscorlib/shared/System/ReadOnlySpan.cs | 4 | ||||
-rw-r--r-- | src/mscorlib/shared/System/Runtime/InteropServices/MemoryMarshal.Fast.cs | 22 | ||||
-rw-r--r-- | src/mscorlib/shared/System/Runtime/InteropServices/MemoryMarshal.cs | 56 | ||||
-rw-r--r-- | src/mscorlib/shared/System/Span.cs | 4 |
9 files changed, 126 insertions, 126 deletions
diff --git a/src/mscorlib/shared/System/Buffers/OwnedMemory.cs b/src/mscorlib/shared/System/Buffers/OwnedMemory.cs index eade1feff3..8acd5b224a 100644 --- a/src/mscorlib/shared/System/Buffers/OwnedMemory.cs +++ b/src/mscorlib/shared/System/Buffers/OwnedMemory.cs @@ -48,7 +48,7 @@ namespace System.Buffers /// <summary> /// Returns an array segment. /// </summary> - protected internal abstract bool TryGetArray(out ArraySegment<T> arraySegment); + protected internal abstract bool TryGetArray(out ArraySegment<T> segment); /// <summary> /// Implements IDisposable. diff --git a/src/mscorlib/shared/System/Memory.cs b/src/mscorlib/shared/System/Memory.cs index 82c66d6ea9..508ebcb3ee 100644 --- a/src/mscorlib/shared/System/Memory.cs +++ b/src/mscorlib/shared/System/Memory.cs @@ -137,7 +137,7 @@ namespace System /// <summary> /// Defines an implicit conversion of a <see cref="ArraySegment{T}"/> to a <see cref="Memory{T}"/> /// </summary> - public static implicit operator Memory<T>(ArraySegment<T> arraySegment) => new Memory<T>(arraySegment.Array, arraySegment.Offset, arraySegment.Count); + public static implicit operator Memory<T>(ArraySegment<T> segment) => new Memory<T>(segment.Array, segment.Offset, segment.Count); /// <summary> /// Defines an implicit conversion of a <see cref="Memory{T}"/> to a <see cref="ReadOnlyMemory{T}"/> diff --git a/src/mscorlib/shared/System/MemoryExtensions.Fast.cs b/src/mscorlib/shared/System/MemoryExtensions.Fast.cs index d28c3d6883..a814d4fb20 100644 --- a/src/mscorlib/shared/System/MemoryExtensions.Fast.cs +++ b/src/mscorlib/shared/System/MemoryExtensions.Fast.cs @@ -28,35 +28,35 @@ namespace System } /// <summary> - /// Determines whether this <paramref name="span"/> and the specified <paramref name="value"/> span have the same characters + /// Determines whether this <paramref name="span"/> and the specified <paramref name="other"/> span have the same characters /// when compared using the specified <paramref name="comparisonType"/> option. /// <param name="span">The source span.</param> - /// <param name="value">The value to compare with the source span.</param> - /// <param name="comparisonType">One of the enumeration values that determines how the <paramref name="span"/> and <paramref name="value"/> are compared.</param> + /// <param name="other">The value to compare with the source span.</param> + /// <param name="comparisonType">One of the enumeration values that determines how the <paramref name="span"/> and <paramref name="other"/> are compared.</param> /// </summary> - public static bool Equals(this ReadOnlySpan<char> span, ReadOnlySpan<char> value, StringComparison comparisonType) + public static bool Equals(this ReadOnlySpan<char> span, ReadOnlySpan<char> other, StringComparison comparisonType) { string.CheckStringComparison(comparisonType); switch (comparisonType) { case StringComparison.CurrentCulture: - return (CultureInfo.CurrentCulture.CompareInfo.CompareOptionNone(span, value) == 0); + return (CultureInfo.CurrentCulture.CompareInfo.CompareOptionNone(span, other) == 0); case StringComparison.CurrentCultureIgnoreCase: - return (CultureInfo.CurrentCulture.CompareInfo.CompareOptionIgnoreCase(span, value) == 0); + return (CultureInfo.CurrentCulture.CompareInfo.CompareOptionIgnoreCase(span, other) == 0); case StringComparison.InvariantCulture: - return (CompareInfo.Invariant.CompareOptionNone(span, value) == 0); + return (CompareInfo.Invariant.CompareOptionNone(span, other) == 0); case StringComparison.InvariantCultureIgnoreCase: - return (CompareInfo.Invariant.CompareOptionIgnoreCase(span, value) == 0); + return (CompareInfo.Invariant.CompareOptionIgnoreCase(span, other) == 0); case StringComparison.Ordinal: - return EqualsOrdinal(span, value); + return EqualsOrdinal(span, other); case StringComparison.OrdinalIgnoreCase: - return EqualsOrdinalIgnoreCase(span, value); + return EqualsOrdinalIgnoreCase(span, other); } Debug.Fail("StringComparison outside range"); @@ -98,37 +98,37 @@ namespace System } /// <summary> - /// Compares the specified <paramref name="span"/> and <paramref name="value"/> using the specified <paramref name="comparisonType"/>, + /// Compares the specified <paramref name="span"/> and <paramref name="other"/> using the specified <paramref name="comparisonType"/>, /// and returns an integer that indicates their relative position in the sort order. /// <param name="span">The source span.</param> - /// <param name="value">The value to compare with the source span.</param> - /// <param name="comparisonType">One of the enumeration values that determines how the <paramref name="span"/> and <paramref name="value"/> are compared.</param> + /// <param name="other">The value to compare with the source span.</param> + /// <param name="comparisonType">One of the enumeration values that determines how the <paramref name="span"/> and <paramref name="other"/> are compared.</param> /// </summary> - public static int CompareTo(this ReadOnlySpan<char> span, ReadOnlySpan<char> value, StringComparison comparisonType) + public static int CompareTo(this ReadOnlySpan<char> span, ReadOnlySpan<char> other, StringComparison comparisonType) { string.CheckStringComparison(comparisonType); switch (comparisonType) { case StringComparison.CurrentCulture: - return CultureInfo.CurrentCulture.CompareInfo.CompareOptionNone(span, value); + return CultureInfo.CurrentCulture.CompareInfo.CompareOptionNone(span, other); case StringComparison.CurrentCultureIgnoreCase: - return CultureInfo.CurrentCulture.CompareInfo.CompareOptionIgnoreCase(span, value); + return CultureInfo.CurrentCulture.CompareInfo.CompareOptionIgnoreCase(span, other); case StringComparison.InvariantCulture: - return CompareInfo.Invariant.CompareOptionNone(span, value); + return CompareInfo.Invariant.CompareOptionNone(span, other); case StringComparison.InvariantCultureIgnoreCase: - return CompareInfo.Invariant.CompareOptionIgnoreCase(span, value); + return CompareInfo.Invariant.CompareOptionIgnoreCase(span, other); case StringComparison.Ordinal: - if (span.Length == 0 || value.Length == 0) - return span.Length - value.Length; - return string.CompareOrdinal(span, value); + if (span.Length == 0 || other.Length == 0) + return span.Length - other.Length; + return string.CompareOrdinal(span, other); case StringComparison.OrdinalIgnoreCase: - return CompareInfo.CompareOrdinalIgnoreCase(span, value); + return CompareInfo.CompareOrdinalIgnoreCase(span, other); } Debug.Fail("StringComparison outside range"); @@ -360,7 +360,7 @@ namespace System /// Casts a Span of one primitive type <typeparamref name="T"/> to Span of bytes. /// That type may not contain pointers or references. This is checked at runtime in order to preserve type safety. /// </summary> - /// <param name="source">The source slice, of type <typeparamref name="T"/>.</param> + /// <param name="span">The source slice, of type <typeparamref name="T"/>.</param> /// <exception cref="System.ArgumentException"> /// Thrown when <typeparamref name="T"/> contains pointers. /// </exception> @@ -368,22 +368,22 @@ namespace System /// Thrown if the Length property of the new Span would exceed Int32.MaxValue. /// </exception> [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Span<byte> AsBytes<T>(this Span<T> source) + public static Span<byte> AsBytes<T>(this Span<T> span) where T : struct { if (RuntimeHelpers.IsReferenceOrContainsReferences<T>()) ThrowHelper.ThrowInvalidTypeWithPointersNotSupported(typeof(T)); return new Span<byte>( - ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(source)), - checked(source.Length * Unsafe.SizeOf<T>())); + ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(span)), + checked(span.Length * Unsafe.SizeOf<T>())); } /// <summary> /// Casts a ReadOnlySpan of one primitive type <typeparamref name="T"/> to ReadOnlySpan of bytes. /// That type may not contain pointers or references. This is checked at runtime in order to preserve type safety. /// </summary> - /// <param name="source">The source slice, of type <typeparamref name="T"/>.</param> + /// <param name="span">The source slice, of type <typeparamref name="T"/>.</param> /// <exception cref="System.ArgumentException"> /// Thrown when <typeparamref name="T"/> contains pointers. /// </exception> @@ -391,15 +391,15 @@ namespace System /// Thrown if the Length property of the new Span would exceed Int32.MaxValue. /// </exception> [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static ReadOnlySpan<byte> AsBytes<T>(this ReadOnlySpan<T> source) + public static ReadOnlySpan<byte> AsBytes<T>(this ReadOnlySpan<T> span) where T : struct { if (RuntimeHelpers.IsReferenceOrContainsReferences<T>()) ThrowHelper.ThrowInvalidTypeWithPointersNotSupported(typeof(T)); return new ReadOnlySpan<byte>( - ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(source)), - checked(source.Length * Unsafe.SizeOf<T>())); + ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(span)), + checked(span.Length * Unsafe.SizeOf<T>())); } /// <summary> diff --git a/src/mscorlib/shared/System/MemoryExtensions.cs b/src/mscorlib/shared/System/MemoryExtensions.cs index be6d22e09c..16ce76b4f2 100644 --- a/src/mscorlib/shared/System/MemoryExtensions.cs +++ b/src/mscorlib/shared/System/MemoryExtensions.cs @@ -255,35 +255,35 @@ namespace System /// Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T). /// </summary> [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool SequenceEqual<T>(this Span<T> first, ReadOnlySpan<T> second) + public static bool SequenceEqual<T>(this Span<T> span, ReadOnlySpan<T> other) where T : IEquatable<T> { - int length = first.Length; + int length = span.Length; if (default(T) != null && IsTypeComparableAsBytes<T>(out nuint size)) - return length == second.Length && + return length == other.Length && SpanHelpers.SequenceEqual( - ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(first)), - ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(second)), + ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(span)), + ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(other)), ((nuint)length) * size); // If this multiplication overflows, the Span we got overflows the entire address range. There's no happy outcome for this api in such a case so we choose not to take the overhead of checking. - return length == second.Length && SpanHelpers.SequenceEqual(ref MemoryMarshal.GetReference(first), ref MemoryMarshal.GetReference(second), length); + return length == other.Length && SpanHelpers.SequenceEqual(ref MemoryMarshal.GetReference(span), ref MemoryMarshal.GetReference(other), length); } /// <summary> /// Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T). /// </summary> - public static int SequenceCompareTo<T>(this Span<T> first, ReadOnlySpan<T> second) + public static int SequenceCompareTo<T>(this Span<T> span, ReadOnlySpan<T> other) where T : IComparable<T> { if (typeof(T) == typeof(byte)) return SpanHelpers.SequenceCompareTo( - ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(first)), - first.Length, - ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(second)), - second.Length); + ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(span)), + span.Length, + ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(other)), + other.Length); - return SpanHelpers.SequenceCompareTo(ref MemoryMarshal.GetReference(first), first.Length, ref MemoryMarshal.GetReference(second), second.Length); + return SpanHelpers.SequenceCompareTo(ref MemoryMarshal.GetReference(span), span.Length, ref MemoryMarshal.GetReference(other), other.Length); } /// <summary> @@ -608,35 +608,35 @@ namespace System /// Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T). /// </summary> [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool SequenceEqual<T>(this ReadOnlySpan<T> first, ReadOnlySpan<T> second) + public static bool SequenceEqual<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> other) where T : IEquatable<T> { - int length = first.Length; + int length = span.Length; if (default(T) != null && IsTypeComparableAsBytes<T>(out nuint size)) - return length == second.Length && + return length == other.Length && SpanHelpers.SequenceEqual( - ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(first)), - ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(second)), + ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(span)), + ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(other)), ((nuint)length) * size); // If this multiplication overflows, the Span we got overflows the entire address range. There's no happy outcome for this api in such a case so we choose not to take the overhead of checking. - return length == second.Length && SpanHelpers.SequenceEqual(ref MemoryMarshal.GetReference(first), ref MemoryMarshal.GetReference(second), length); + return length == other.Length && SpanHelpers.SequenceEqual(ref MemoryMarshal.GetReference(span), ref MemoryMarshal.GetReference(other), length); } /// <summary> /// Determines the relative order of the sequences being compared by comparing the elements using IComparable{T}.CompareTo(T). /// </summary> [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static int SequenceCompareTo<T>(this ReadOnlySpan<T> first, ReadOnlySpan<T> second) + public static int SequenceCompareTo<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> other) where T : IComparable<T> { if (typeof(T) == typeof(byte)) return SpanHelpers.SequenceCompareTo( - ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(first)), - first.Length, - ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(second)), - second.Length); + ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(span)), + span.Length, + ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(other)), + other.Length); - return SpanHelpers.SequenceCompareTo(ref MemoryMarshal.GetReference(first), first.Length, ref MemoryMarshal.GetReference(second), second.Length); + return SpanHelpers.SequenceCompareTo(ref MemoryMarshal.GetReference(span), span.Length, ref MemoryMarshal.GetReference(other), other.Length); } /// <summary> @@ -901,16 +901,16 @@ namespace System /// and destinations overlap, this method behaves as if the original values in /// a temporary location before the destination is overwritten. /// - ///<param name="array">The array to copy items from.</param> + ///<param name="source">The array to copy items from.</param> /// <param name="destination">The span to copy items into.</param> /// <exception cref="System.ArgumentException"> /// Thrown when the destination Span is shorter than the source array. /// </exception> /// </summary> [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void CopyTo<T>(this T[] array, Span<T> destination) + public static void CopyTo<T>(this T[] source, Span<T> destination) { - new ReadOnlySpan<T>(array).CopyTo(destination); + new ReadOnlySpan<T>(source).CopyTo(destination); } /// <summary> @@ -918,16 +918,16 @@ namespace System /// and destinations overlap, this method behaves as if the original values are in /// a temporary location before the destination is overwritten. /// - ///<param name="array">The array to copy items from.</param> + ///<param name="source">The array to copy items from.</param> /// <param name="destination">The memory to copy items into.</param> /// <exception cref="System.ArgumentException"> /// Thrown when the destination is shorter than the source array. /// </exception> /// </summary> [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void CopyTo<T>(this T[] array, Memory<T> destination) + public static void CopyTo<T>(this T[] source, Memory<T> destination) { - array.CopyTo(destination.Span); + source.CopyTo(destination.Span); } // @@ -1062,65 +1062,65 @@ namespace System /// Determines whether two sequences overlap in memory. /// </summary> [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool Overlaps<T>(this Span<T> first, ReadOnlySpan<T> second) + public static bool Overlaps<T>(this Span<T> span, ReadOnlySpan<T> other) { - return Overlaps((ReadOnlySpan<T>)first, second); + return Overlaps((ReadOnlySpan<T>)span, other); } /// <summary> /// Determines whether two sequences overlap in memory and outputs the element offset. /// </summary> [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool Overlaps<T>(this Span<T> first, ReadOnlySpan<T> second, out int elementOffset) + public static bool Overlaps<T>(this Span<T> span, ReadOnlySpan<T> other, out int elementOffset) { - return Overlaps((ReadOnlySpan<T>)first, second, out elementOffset); + return Overlaps((ReadOnlySpan<T>)span, other, out elementOffset); } /// <summary> /// Determines whether two sequences overlap in memory. /// </summary> - public static bool Overlaps<T>(this ReadOnlySpan<T> first, ReadOnlySpan<T> second) + public static bool Overlaps<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> other) { - if (first.IsEmpty || second.IsEmpty) + if (span.IsEmpty || other.IsEmpty) { return false; } IntPtr byteOffset = Unsafe.ByteOffset( - ref MemoryMarshal.GetReference(first), - ref MemoryMarshal.GetReference(second)); + ref MemoryMarshal.GetReference(span), + ref MemoryMarshal.GetReference(other)); if (Unsafe.SizeOf<IntPtr>() == sizeof(int)) { - return (uint)byteOffset < (uint)(first.Length * Unsafe.SizeOf<T>()) || - (uint)byteOffset > (uint)-(second.Length * Unsafe.SizeOf<T>()); + return (uint)byteOffset < (uint)(span.Length * Unsafe.SizeOf<T>()) || + (uint)byteOffset > (uint)-(other.Length * Unsafe.SizeOf<T>()); } else { - return (ulong)byteOffset < (ulong)((long)first.Length * Unsafe.SizeOf<T>()) || - (ulong)byteOffset > (ulong)-((long)second.Length * Unsafe.SizeOf<T>()); + return (ulong)byteOffset < (ulong)((long)span.Length * Unsafe.SizeOf<T>()) || + (ulong)byteOffset > (ulong)-((long)other.Length * Unsafe.SizeOf<T>()); } } /// <summary> /// Determines whether two sequences overlap in memory and outputs the element offset. /// </summary> - public static bool Overlaps<T>(this ReadOnlySpan<T> first, ReadOnlySpan<T> second, out int elementOffset) + public static bool Overlaps<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> other, out int elementOffset) { - if (first.IsEmpty || second.IsEmpty) + if (span.IsEmpty || other.IsEmpty) { elementOffset = 0; return false; } IntPtr byteOffset = Unsafe.ByteOffset( - ref MemoryMarshal.GetReference(first), - ref MemoryMarshal.GetReference(second)); + ref MemoryMarshal.GetReference(span), + ref MemoryMarshal.GetReference(other)); if (Unsafe.SizeOf<IntPtr>() == sizeof(int)) { - if ((uint)byteOffset < (uint)(first.Length * Unsafe.SizeOf<T>()) || - (uint)byteOffset > (uint)-(second.Length * Unsafe.SizeOf<T>())) + if ((uint)byteOffset < (uint)(span.Length * Unsafe.SizeOf<T>()) || + (uint)byteOffset > (uint)-(other.Length * Unsafe.SizeOf<T>())) { if ((int)byteOffset % Unsafe.SizeOf<T>() != 0) ThrowHelper.ThrowArgumentException_OverlapAlignmentMismatch(); @@ -1136,8 +1136,8 @@ namespace System } else { - if ((ulong)byteOffset < (ulong)((long)first.Length * Unsafe.SizeOf<T>()) || - (ulong)byteOffset > (ulong)-((long)second.Length * Unsafe.SizeOf<T>())) + if ((ulong)byteOffset < (ulong)((long)span.Length * Unsafe.SizeOf<T>()) || + (ulong)byteOffset > (ulong)-((long)other.Length * Unsafe.SizeOf<T>())) { if ((long)byteOffset % Unsafe.SizeOf<T>() != 0) ThrowHelper.ThrowArgumentException_OverlapAlignmentMismatch(); diff --git a/src/mscorlib/shared/System/ReadOnlyMemory.cs b/src/mscorlib/shared/System/ReadOnlyMemory.cs index 90a9decf66..5f3f0e1980 100644 --- a/src/mscorlib/shared/System/ReadOnlyMemory.cs +++ b/src/mscorlib/shared/System/ReadOnlyMemory.cs @@ -105,7 +105,7 @@ namespace System /// <summary> /// Defines an implicit conversion of a <see cref="ArraySegment{T}"/> to a <see cref="ReadOnlyMemory{T}"/> /// </summary> - public static implicit operator ReadOnlyMemory<T>(ArraySegment<T> arraySegment) => new ReadOnlyMemory<T>(arraySegment.Array, arraySegment.Offset, arraySegment.Count); + public static implicit operator ReadOnlyMemory<T>(ArraySegment<T> segment) => new ReadOnlyMemory<T>(segment.Array, segment.Offset, segment.Count); /// <summary> /// Returns an empty <see cref="ReadOnlyMemory{T}"/> diff --git a/src/mscorlib/shared/System/ReadOnlySpan.cs b/src/mscorlib/shared/System/ReadOnlySpan.cs index 906a3c4317..14b33e23f2 100644 --- a/src/mscorlib/shared/System/ReadOnlySpan.cs +++ b/src/mscorlib/shared/System/ReadOnlySpan.cs @@ -88,8 +88,8 @@ namespace System /// <summary> /// Defines an implicit conversion of a <see cref="ArraySegment{T}"/> to a <see cref="ReadOnlySpan{T}"/> /// </summary> - public static implicit operator ReadOnlySpan<T>(ArraySegment<T> arraySegment) - => new ReadOnlySpan<T>(arraySegment.Array, arraySegment.Offset, arraySegment.Count); + public static implicit operator ReadOnlySpan<T>(ArraySegment<T> segment) + => new ReadOnlySpan<T>(segment.Array, segment.Offset, segment.Count); /// <summary> /// Returns a 0-length read-only span whose base is the null pointer. diff --git a/src/mscorlib/shared/System/Runtime/InteropServices/MemoryMarshal.Fast.cs b/src/mscorlib/shared/System/Runtime/InteropServices/MemoryMarshal.Fast.cs index 34881e77a9..a8dadea53f 100644 --- a/src/mscorlib/shared/System/Runtime/InteropServices/MemoryMarshal.Fast.cs +++ b/src/mscorlib/shared/System/Runtime/InteropServices/MemoryMarshal.Fast.cs @@ -16,7 +16,7 @@ namespace System.Runtime.InteropServices public static partial class MemoryMarshal { /// <summary>Creates a <see cref="Memory{T}"/> from a <see cref="ReadOnlyMemory{T}"/>.</summary> - /// <param name="readOnlyMemory">The <see cref="ReadOnlyMemory{T}"/>.</param> + /// <param name="memory">The <see cref="ReadOnlyMemory{T}"/>.</param> /// <returns>A <see cref="Memory{T}"/> representing the same memory as the <see cref="ReadOnlyMemory{T}"/>, but writable.</returns> /// <remarks> /// <see cref="AsMemory{T}(ReadOnlyMemory{T})"/> must be used with extreme caution. <see cref="ReadOnlyMemory{T}"/> is used @@ -24,8 +24,8 @@ namespace System.Runtime.InteropServices /// by <see cref="AsMemory{T}(ReadOnlyMemory{T})"/> should not be written to. The method exists to enable variables typed /// as <see cref="Memory{T}"/> but only used for reading to store a <see cref="ReadOnlyMemory{T}"/>. /// </remarks> - public static Memory<T> AsMemory<T>(ReadOnlyMemory<T> readOnlyMemory) => - Unsafe.As<ReadOnlyMemory<T>, Memory<T>>(ref readOnlyMemory); + public static Memory<T> AsMemory<T>(ReadOnlyMemory<T> memory) => + Unsafe.As<ReadOnlyMemory<T>, Memory<T>>(ref memory); /// <summary> /// Returns a reference to the 0th element of the Span. If the Span is empty, returns a reference to the location where the 0th element @@ -60,12 +60,12 @@ namespace System.Runtime.InteropServices /// <remarks> /// Supported only for platforms that support misaligned memory access. /// </remarks> - /// <param name="source">The source slice, of type <typeparamref name="TFrom"/>.</param> + /// <param name="span">The source slice, of type <typeparamref name="TFrom"/>.</param> /// <exception cref="System.ArgumentException"> /// Thrown when <typeparamref name="TFrom"/> or <typeparamref name="TTo"/> contains pointers. /// </exception> [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static Span<TTo> Cast<TFrom, TTo>(Span<TFrom> source) + public static Span<TTo> Cast<TFrom, TTo>(Span<TFrom> span) where TFrom : struct where TTo : struct { @@ -78,7 +78,7 @@ namespace System.Runtime.InteropServices // and checked casts are faster and smaller. uint fromSize = (uint)Unsafe.SizeOf<TFrom>(); uint toSize = (uint)Unsafe.SizeOf<TTo>(); - uint fromLength = (uint)source.Length; + uint fromLength = (uint)span.Length; int toLength; if (fromSize == toSize) { @@ -104,7 +104,7 @@ namespace System.Runtime.InteropServices } return new Span<TTo>( - ref Unsafe.As<TFrom, TTo>(ref source._pointer.Value), + ref Unsafe.As<TFrom, TTo>(ref span._pointer.Value), toLength); } @@ -115,12 +115,12 @@ namespace System.Runtime.InteropServices /// <remarks> /// Supported only for platforms that support misaligned memory access. /// </remarks> - /// <param name="source">The source slice, of type <typeparamref name="TFrom"/>.</param> + /// <param name="span">The source slice, of type <typeparamref name="TFrom"/>.</param> /// <exception cref="System.ArgumentException"> /// Thrown when <typeparamref name="TFrom"/> or <typeparamref name="TTo"/> contains pointers. /// </exception> [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static ReadOnlySpan<TTo> Cast<TFrom, TTo>(ReadOnlySpan<TFrom> source) + public static ReadOnlySpan<TTo> Cast<TFrom, TTo>(ReadOnlySpan<TFrom> span) where TFrom : struct where TTo : struct { @@ -133,7 +133,7 @@ namespace System.Runtime.InteropServices // and checked casts are faster and smaller. uint fromSize = (uint)Unsafe.SizeOf<TFrom>(); uint toSize = (uint)Unsafe.SizeOf<TTo>(); - uint fromLength = (uint)source.Length; + uint fromLength = (uint)span.Length; int toLength; if (fromSize == toSize) { @@ -159,7 +159,7 @@ namespace System.Runtime.InteropServices } return new ReadOnlySpan<TTo>( - ref Unsafe.As<TFrom, TTo>(ref MemoryMarshal.GetReference(source)), + ref Unsafe.As<TFrom, TTo>(ref MemoryMarshal.GetReference(span)), toLength); } diff --git a/src/mscorlib/shared/System/Runtime/InteropServices/MemoryMarshal.cs b/src/mscorlib/shared/System/Runtime/InteropServices/MemoryMarshal.cs index 316ce12aab..0f558d95ca 100644 --- a/src/mscorlib/shared/System/Runtime/InteropServices/MemoryMarshal.cs +++ b/src/mscorlib/shared/System/Runtime/InteropServices/MemoryMarshal.cs @@ -18,71 +18,71 @@ namespace System.Runtime.InteropServices /// Get an array segment from the underlying memory. /// If unable to get the array segment, return false with a default array segment. /// </summary> - public static bool TryGetArray<T>(ReadOnlyMemory<T> readOnlyMemory, out ArraySegment<T> arraySegment) + public static bool TryGetArray<T>(ReadOnlyMemory<T> memory, out ArraySegment<T> segment) { - object obj = readOnlyMemory.GetObjectStartLength(out int index, out int length); + object obj = memory.GetObjectStartLength(out int index, out int length); if (index < 0) { - if (((OwnedMemory<T>)obj).TryGetArray(out var segment)) + if (((OwnedMemory<T>)obj).TryGetArray(out ArraySegment<T> arraySegment)) { - arraySegment = new ArraySegment<T>(segment.Array, segment.Offset + (index & ReadOnlyMemory<T>.RemoveOwnedFlagBitMask), length); + segment = new ArraySegment<T>(arraySegment.Array, arraySegment.Offset + (index & ReadOnlyMemory<T>.RemoveOwnedFlagBitMask), length); return true; } } else if (obj is T[] arr) { - arraySegment = new ArraySegment<T>(arr, index, length); + segment = new ArraySegment<T>(arr, index, length); return true; } if (length == 0) { #if FEATURE_PORTABLE_SPAN - arraySegment = new ArraySegment<T>(SpanHelpers.PerTypeValues<T>.EmptyArray); + segment = new ArraySegment<T>(SpanHelpers.PerTypeValues<T>.EmptyArray); #else - arraySegment = ArraySegment<T>.Empty; + segment = ArraySegment<T>.Empty; #endif // FEATURE_PORTABLE_SPAN return true; } - arraySegment = default; + segment = default; return false; } /// <summary> - /// Gets an <see cref="OwnedMemory{T}"/> from the underlying readOnlyMemory. + /// Gets an <see cref="OwnedMemory{T}"/> from the underlying read-only memory. /// If unable to get the <typeparamref name="TOwner"/> type, returns false. /// </summary> - /// <typeparam name="T">The element type of the <paramref name="readOnlyMemory" />.</typeparam> + /// <typeparam name="T">The element type of the <paramref name="memory" />.</typeparam> /// <typeparam name="TOwner">The type of <see cref="OwnedMemory{T}"/> to try and retrive.</typeparam> - /// <param name="readOnlyMemory">The memory to get the owner for.</param> - /// <param name="ownedMemory">The returned owner of the <see cref="ReadOnlyMemory{T}"/>.</param> + /// <param name="memory">The memory to get the owner for.</param> + /// <param name="owner">The returned owner of the <see cref="ReadOnlyMemory{T}"/>.</param> /// <returns>A <see cref="bool"/> indicating if it was successful.</returns> - public static bool TryGetOwnedMemory<T, TOwner>(ReadOnlyMemory<T> readOnlyMemory, out TOwner ownedMemory) + public static bool TryGetOwnedMemory<T, TOwner>(ReadOnlyMemory<T> memory, out TOwner owner) where TOwner : OwnedMemory<T> { - TOwner owner; // Use register for null comparison rather than byref - ownedMemory = owner = readOnlyMemory.GetObjectStartLength(out int index, out int length) as TOwner; + TOwner localOwner; // Use register for null comparison rather than byref + owner = localOwner = memory.GetObjectStartLength(out int index, out int length) as TOwner; return !ReferenceEquals(owner, null); } /// <summary> - /// Gets an <see cref="OwnedMemory{T}"/> and <paramref name="index" />, <paramref name="length" /> from the underlying memory. + /// Gets an <see cref="OwnedMemory{T}"/> and <paramref name="start" />, <paramref name="length" /> from the underlying read-only memory. /// If unable to get the <typeparamref name="TOwner"/> type, returns false. /// </summary> - /// <typeparam name="T">The element type of the <paramref name="readOnlyMemory" />.</typeparam> + /// <typeparam name="T">The element type of the <paramref name="memory" />.</typeparam> /// <typeparam name="TOwner">The type of <see cref="OwnedMemory{T}"/> to try and retrive.</typeparam> - /// <param name="readOnlyMemory">The memory to get the owner for.</param> - /// <param name="ownedMemory">The returned owner of the <see cref="ReadOnlyMemory{T}"/>.</param> - /// <param name="index">The offset from the start of the <paramref name="ownedMemory" /> that the <paramref name="readOnlyMemory" /> represents.</param> - /// <param name="length">The length of the <paramref name="ownedMemory" /> that the <paramref name="readOnlyMemory" /> represents.</param> + /// <param name="memory">The memory to get the owner for.</param> + /// <param name="owner">The returned owner of the <see cref="ReadOnlyMemory{T}"/>.</param> + /// <param name="start">The offset from the start of the <paramref name="owner" /> that the <paramref name="memory" /> represents.</param> + /// <param name="length">The length of the <paramref name="owner" /> that the <paramref name="memory" /> represents.</param> /// <returns>A <see cref="bool"/> indicating if it was successful.</returns> - public static bool TryGetOwnedMemory<T, TOwner>(ReadOnlyMemory<T> readOnlyMemory, out TOwner ownedMemory, out int index, out int length) + public static bool TryGetOwnedMemory<T, TOwner>(ReadOnlyMemory<T> memory, out TOwner owner, out int start, out int length) where TOwner : OwnedMemory<T> { - TOwner owner; // Use register for null comparison rather than byref - ownedMemory = owner = readOnlyMemory.GetObjectStartLength(out index, out length) as TOwner; - index &= ReadOnlyMemory<T>.RemoveOwnedFlagBitMask; + TOwner localOwner; // Use register for null comparison rather than byref + owner = localOwner = memory.GetObjectStartLength(out start, out length) as TOwner; + start &= ReadOnlyMemory<T>.RemoveOwnedFlagBitMask; return !ReferenceEquals(owner, null); } @@ -100,14 +100,14 @@ namespace System.Runtime.InteropServices } /// <summary>Attempts to get the underlying <see cref="string"/> from a <see cref="ReadOnlyMemory{T}"/>.</summary> - /// <param name="readOnlyMemory">The memory that may be wrapping a <see cref="string"/> object.</param> + /// <param name="memory">The memory that may be wrapping a <see cref="string"/> object.</param> /// <param name="text">The string.</param> /// <param name="start">The starting location in <paramref name="text"/>.</param> /// <param name="length">The number of items in <paramref name="text"/>.</param> /// <returns></returns> - public static bool TryGetString(ReadOnlyMemory<char> readOnlyMemory, out string text, out int start, out int length) + public static bool TryGetString(ReadOnlyMemory<char> memory, out string text, out int start, out int length) { - if (readOnlyMemory.GetObjectStartLength(out int offset, out int count) is string s) + if (memory.GetObjectStartLength(out int offset, out int count) is string s) { text = s; start = offset; diff --git a/src/mscorlib/shared/System/Span.cs b/src/mscorlib/shared/System/Span.cs index 78733515cd..81288a7627 100644 --- a/src/mscorlib/shared/System/Span.cs +++ b/src/mscorlib/shared/System/Span.cs @@ -89,8 +89,8 @@ namespace System /// <summary> /// Defines an implicit conversion of a <see cref="ArraySegment{T}"/> to a <see cref="Span{T}"/> /// </summary> - public static implicit operator Span<T>(ArraySegment<T> arraySegment) - => new Span<T>(arraySegment.Array, arraySegment.Offset, arraySegment.Count); + public static implicit operator Span<T>(ArraySegment<T> segment) + => new Span<T>(segment.Array, segment.Offset, segment.Count); /// <summary> /// Returns an empty <see cref="Span{T}"/> |