From 018ea07707e02283a8ca8deec740dbde4f14aaf9 Mon Sep 17 00:00:00 2001 From: xtqqczze <45661989+xtqqczze@users.noreply.github.com> Date: Sat, 15 Feb 2025 22:17:27 +0000 Subject: [PATCH 1/3] Use `Unsafe.BitCast` in `RangeCharSearchValues` --- .../src/System/SearchValues/RangeCharSearchValues.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libraries/System.Private.CoreLib/src/System/SearchValues/RangeCharSearchValues.cs b/src/libraries/System.Private.CoreLib/src/System/SearchValues/RangeCharSearchValues.cs index 3a85f950ef4adb..5edcc880500d2d 100644 --- a/src/libraries/System.Private.CoreLib/src/System/SearchValues/RangeCharSearchValues.cs +++ b/src/libraries/System.Private.CoreLib/src/System/SearchValues/RangeCharSearchValues.cs @@ -43,8 +43,8 @@ internal override int IndexOfAny(ReadOnlySpan span) => ? PackedSpanHelpers.IndexOfAnyInRange(ref MemoryMarshal.GetReference(span), _lowInclusive, _rangeInclusive, span.Length) : SpanHelpers.NonPackedIndexOfAnyInRangeUnsignedNumber>( ref Unsafe.As(ref MemoryMarshal.GetReference(span)), - Unsafe.As(ref _lowInclusive), - Unsafe.As(ref _highInclusive), + Unsafe.BitCast(_lowInclusive), + Unsafe.BitCast(_highInclusive), span.Length); [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -53,8 +53,8 @@ internal override int IndexOfAnyExcept(ReadOnlySpan span) => ? PackedSpanHelpers.IndexOfAnyExceptInRange(ref MemoryMarshal.GetReference(span), _lowInclusive, _rangeInclusive, span.Length) : SpanHelpers.NonPackedIndexOfAnyInRangeUnsignedNumber>( ref Unsafe.As(ref MemoryMarshal.GetReference(span)), - Unsafe.As(ref _lowInclusive), - Unsafe.As(ref _highInclusive), + Unsafe.BitCast(_lowInclusive), + Unsafe.BitCast(_highInclusive), span.Length); [MethodImpl(MethodImplOptions.AggressiveInlining)] From 521eae42fa5ba0f8192ad3beff6bdcbbe96cc180 Mon Sep 17 00:00:00 2001 From: xtqqczze <45661989+xtqqczze@users.noreply.github.com> Date: Sun, 16 Feb 2025 09:48:43 +0000 Subject: [PATCH 2/3] Use cast --- .../src/System/SearchValues/RangeCharSearchValues.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libraries/System.Private.CoreLib/src/System/SearchValues/RangeCharSearchValues.cs b/src/libraries/System.Private.CoreLib/src/System/SearchValues/RangeCharSearchValues.cs index 5edcc880500d2d..42adf0468128a8 100644 --- a/src/libraries/System.Private.CoreLib/src/System/SearchValues/RangeCharSearchValues.cs +++ b/src/libraries/System.Private.CoreLib/src/System/SearchValues/RangeCharSearchValues.cs @@ -43,8 +43,8 @@ internal override int IndexOfAny(ReadOnlySpan span) => ? PackedSpanHelpers.IndexOfAnyInRange(ref MemoryMarshal.GetReference(span), _lowInclusive, _rangeInclusive, span.Length) : SpanHelpers.NonPackedIndexOfAnyInRangeUnsignedNumber>( ref Unsafe.As(ref MemoryMarshal.GetReference(span)), - Unsafe.BitCast(_lowInclusive), - Unsafe.BitCast(_highInclusive), + (ushort)_lowInclusive, + (ushort)_highInclusive, span.Length); [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -53,8 +53,8 @@ internal override int IndexOfAnyExcept(ReadOnlySpan span) => ? PackedSpanHelpers.IndexOfAnyExceptInRange(ref MemoryMarshal.GetReference(span), _lowInclusive, _rangeInclusive, span.Length) : SpanHelpers.NonPackedIndexOfAnyInRangeUnsignedNumber>( ref Unsafe.As(ref MemoryMarshal.GetReference(span)), - Unsafe.BitCast(_lowInclusive), - Unsafe.BitCast(_highInclusive), + (ushort)_lowInclusive, + (ushort)_highInclusive, span.Length); [MethodImpl(MethodImplOptions.AggressiveInlining)] From 1dbaf955c18ccc59a546f5b9b1ea7c3f9def6829 Mon Sep 17 00:00:00 2001 From: xtqqczze <45661989+xtqqczze@users.noreply.github.com> Date: Sun, 16 Feb 2025 12:30:00 +0000 Subject: [PATCH 3/3] Use implicit cast --- .../src/System/SearchValues/RangeCharSearchValues.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libraries/System.Private.CoreLib/src/System/SearchValues/RangeCharSearchValues.cs b/src/libraries/System.Private.CoreLib/src/System/SearchValues/RangeCharSearchValues.cs index 42adf0468128a8..3f6b01279db84c 100644 --- a/src/libraries/System.Private.CoreLib/src/System/SearchValues/RangeCharSearchValues.cs +++ b/src/libraries/System.Private.CoreLib/src/System/SearchValues/RangeCharSearchValues.cs @@ -43,8 +43,8 @@ internal override int IndexOfAny(ReadOnlySpan span) => ? PackedSpanHelpers.IndexOfAnyInRange(ref MemoryMarshal.GetReference(span), _lowInclusive, _rangeInclusive, span.Length) : SpanHelpers.NonPackedIndexOfAnyInRangeUnsignedNumber>( ref Unsafe.As(ref MemoryMarshal.GetReference(span)), - (ushort)_lowInclusive, - (ushort)_highInclusive, + _lowInclusive, + _highInclusive, span.Length); [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -53,8 +53,8 @@ internal override int IndexOfAnyExcept(ReadOnlySpan span) => ? PackedSpanHelpers.IndexOfAnyExceptInRange(ref MemoryMarshal.GetReference(span), _lowInclusive, _rangeInclusive, span.Length) : SpanHelpers.NonPackedIndexOfAnyInRangeUnsignedNumber>( ref Unsafe.As(ref MemoryMarshal.GetReference(span)), - (ushort)_lowInclusive, - (ushort)_highInclusive, + _lowInclusive, + _highInclusive, span.Length); [MethodImpl(MethodImplOptions.AggressiveInlining)]