Skip to content

Commit 254844a

Browse files
[Mono] Restore old code to solve the recent SpanHelpers regressions (dotnet#75917)
* bring back the old code... * bring back more old code * Use an ifdef around clr code instead of a separate file * Delete SpanHelpers.Clr.cs * Remove a remaining INumber<T> helper from mono Co-authored-by: Jeff Handley <[email protected]>
1 parent 3303bd3 commit 254844a

4 files changed

Lines changed: 2718 additions & 0 deletions

File tree

src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2462,4 +2462,7 @@
24622462
<Compile Include="$(MSBuildThisFileDirectory)System\Numerics\IUnaryPlusOperators.cs" />
24632463
<Compile Include="$(MSBuildThisFileDirectory)System\Numerics\IUnsignedNumber.cs" />
24642464
</ItemGroup>
2465+
<ItemGroup Condition="'$(FeatureMono)' == 'true'">
2466+
<Compile Include="$(MSBuildThisFileDirectory)System\SpanHelpers.Mono.cs" />
2467+
</ItemGroup>
24652468
</Project>

src/libraries/System.Private.CoreLib/src/System/MemoryExtensions.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1617,6 +1617,7 @@ ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(span)),
16171617
Unsafe.Add(ref valueRef, 2),
16181618
span.Length);
16191619

1620+
#if !MONO // We don't have a mono overload for 4 values
16201621
case 4:
16211622
return SpanHelpers.LastIndexOfAnyValueType(
16221623
ref spanRef,
@@ -1625,6 +1626,7 @@ ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(span)),
16251626
Unsafe.Add(ref valueRef, 2),
16261627
Unsafe.Add(ref valueRef, 3),
16271628
span.Length);
1629+
#endif
16281630

16291631
default:
16301632
return LastIndexOfAnyProbabilistic(ref Unsafe.As<short, char>(ref spanRef), span.Length, ref Unsafe.As<short, char>(ref valueRef), values.Length);

0 commit comments

Comments
 (0)