aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Common/Utilities/SpanHelpers.cs
diff options
context:
space:
mode:
authorMary-nyan <mary@mary.zone>2022-11-09 20:22:43 +0100
committerGitHub <noreply@github.com>2022-11-09 20:22:43 +0100
commitc6d05301aae7509ea6a1ec29d39a72bac94d80b0 (patch)
treea1e593a9fd180fbc467beae29907c37cb6e902e5 /Ryujinx.Common/Utilities/SpanHelpers.cs
parent647de4cd31a82f39d23f92ea4377eeae5817b6c2 (diff)
infra: Migrate to .NET 7 (#3795)1.1.339
* Update readme to mention .NET 7 * infra: Migrate to .NET 7 .NET 7 is still in preview but this prepare for the release coming up next month. * Use Random.Shared in CreateRandom * Move UInt128Utils.cs to Ryujinx.Common project * Fix inverted parameters in System.UInt128 constructor * Fix Visual Studio complains on Ryujinx.Graphics.Vic * time: Fix missing alignment enforcement in SystemClockContext Fixes at least Smash * time: Fix missing alignment enforcement in SteadyClockContext Fix games (like recent version of Smash) using time shared memory * Switch to .NET 7.0.100 release * Enable Tiered PGO * Ensure CreateId validity requirements are meet when doing random generation Also enforce correct packing layout for other Mii structures. This fix a Mario Kart 8 crashes related to the default Miis.
Diffstat (limited to 'Ryujinx.Common/Utilities/SpanHelpers.cs')
-rw-r--r--Ryujinx.Common/Utilities/SpanHelpers.cs16
1 files changed, 8 insertions, 8 deletions
diff --git a/Ryujinx.Common/Utilities/SpanHelpers.cs b/Ryujinx.Common/Utilities/SpanHelpers.cs
index 84c13023..4765eab3 100644
--- a/Ryujinx.Common/Utilities/SpanHelpers.cs
+++ b/Ryujinx.Common/Utilities/SpanHelpers.cs
@@ -7,19 +7,19 @@ namespace Ryujinx.Common.Utilities
public static class SpanHelpers
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static Span<T> CreateSpan<T>(ref T reference, int length)
+ public static Span<T> CreateSpan<T>(scoped ref T reference, int length)
{
return MemoryMarshal.CreateSpan(ref reference, length);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static Span<T> AsSpan<T>(ref T reference) where T : unmanaged
+ public static Span<T> AsSpan<T>(scoped ref T reference) where T : unmanaged
{
return CreateSpan(ref reference, 1);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static Span<TSpan> AsSpan<TStruct, TSpan>(ref TStruct reference)
+ public static Span<TSpan> AsSpan<TStruct, TSpan>(scoped ref TStruct reference)
where TStruct : unmanaged where TSpan : unmanaged
{
return CreateSpan(ref Unsafe.As<TStruct, TSpan>(ref reference),
@@ -27,25 +27,25 @@ namespace Ryujinx.Common.Utilities
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static Span<byte> AsByteSpan<T>(ref T reference) where T : unmanaged
+ public static Span<byte> AsByteSpan<T>(scoped ref T reference) where T : unmanaged
{
return CreateSpan(ref Unsafe.As<T, byte>(ref reference), Unsafe.SizeOf<T>());
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static ReadOnlySpan<T> CreateReadOnlySpan<T>(ref T reference, int length)
+ public static ReadOnlySpan<T> CreateReadOnlySpan<T>(scoped ref T reference, int length)
{
return MemoryMarshal.CreateReadOnlySpan(ref reference, length);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static ReadOnlySpan<T> AsReadOnlySpan<T>(ref T reference) where T : unmanaged
+ public static ReadOnlySpan<T> AsReadOnlySpan<T>(scoped ref T reference) where T : unmanaged
{
return CreateReadOnlySpan(ref reference, 1);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static ReadOnlySpan<TSpan> AsReadOnlySpan<TStruct, TSpan>(ref TStruct reference)
+ public static ReadOnlySpan<TSpan> AsReadOnlySpan<TStruct, TSpan>(scoped ref TStruct reference)
where TStruct : unmanaged where TSpan : unmanaged
{
return CreateReadOnlySpan(ref Unsafe.As<TStruct, TSpan>(ref reference),
@@ -53,7 +53,7 @@ namespace Ryujinx.Common.Utilities
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public static ReadOnlySpan<byte> AsReadOnlyByteSpan<T>(ref T reference) where T : unmanaged
+ public static ReadOnlySpan<byte> AsReadOnlyByteSpan<T>(scoped ref T reference) where T : unmanaged
{
return CreateReadOnlySpan(ref Unsafe.As<T, byte>(ref reference), Unsafe.SizeOf<T>());
}