diff options
| author | Andrey Sukharev <SukharevAndrey@users.noreply.github.com> | 2022-12-05 16:47:39 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-05 14:47:39 +0100 |
| commit | 4da44e09cb2a32f69b4a6b47221117b78e4618dc (patch) | |
| tree | c3648a09202374dabff6fac472fe341bf9e1f0ee /Ryujinx.HLE/HOS/Services | |
| parent | ae13f0ab4da5b371bba746c1bd6598baaa44585d (diff) | |
Make structs readonly when applicable (#4002)
* Make all structs readonly when applicable. It should reduce amount of needless defensive copies
* Make structs with trivial boilerplate equality code record structs
* Remove unnecessary readonly modifiers from TextureCreateInfo
* Make BitMap structs readonly too
Diffstat (limited to 'Ryujinx.HLE/HOS/Services')
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Account/Acc/Types/UserId.cs | 31 | ||||
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostAsGpu/NvHostAsGpuDeviceFile.cs | 2 |
2 files changed, 4 insertions, 29 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/Types/UserId.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/Types/UserId.cs index 8cf4bff1..1793067d 100644 --- a/Ryujinx.HLE/HOS/Services/Account/Acc/Types/UserId.cs +++ b/Ryujinx.HLE/HOS/Services/Account/Acc/Types/UserId.cs @@ -7,7 +7,7 @@ using System.Runtime.InteropServices; namespace Ryujinx.HLE.HOS.Services.Account.Acc { [StructLayout(LayoutKind.Sequential)] - public struct UserId : IEquatable<UserId> + public readonly record struct UserId { public readonly long High; public readonly long Low; @@ -50,37 +50,12 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return High.ToString("x16") + Low.ToString("x16"); } - public static bool operator ==(UserId x, UserId y) - { - return x.Equals(y); - } - - public static bool operator !=(UserId x, UserId y) - { - return !x.Equals(y); - } - - public override bool Equals(object obj) - { - return obj is UserId userId && Equals(userId); - } - - public bool Equals(UserId cmpObj) - { - return Low == cmpObj.Low && High == cmpObj.High; - } - - public override int GetHashCode() - { - return HashCode.Combine(Low, High); - } - - public readonly Uid ToLibHacUid() + public Uid ToLibHacUid() { return new Uid((ulong)High, (ulong)Low); } - public readonly UInt128 ToUInt128() + public UInt128 ToUInt128() { return new UInt128((ulong)High, (ulong)Low); } diff --git a/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostAsGpu/NvHostAsGpuDeviceFile.cs b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostAsGpu/NvHostAsGpuDeviceFile.cs index a1ad1c94..0e0fe7f2 100644 --- a/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostAsGpu/NvHostAsGpuDeviceFile.cs +++ b/Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostAsGpu/NvHostAsGpuDeviceFile.cs @@ -20,7 +20,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostAsGpu private const ulong SmallRegionLimit = 0x400000000UL; // 16 GiB private const ulong DefaultUserSize = 1UL << 37; - private struct VmRegion + private readonly struct VmRegion { public ulong Start { get; } public ulong Limit { get; } |
