aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services
diff options
context:
space:
mode:
authorAndrey Sukharev <SukharevAndrey@users.noreply.github.com>2022-12-05 16:47:39 +0300
committerGitHub <noreply@github.com>2022-12-05 14:47:39 +0100
commit4da44e09cb2a32f69b4a6b47221117b78e4618dc (patch)
treec3648a09202374dabff6fac472fe341bf9e1f0ee /Ryujinx.HLE/HOS/Services
parentae13f0ab4da5b371bba746c1bd6598baaa44585d (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.cs31
-rw-r--r--Ryujinx.HLE/HOS/Services/Nv/NvDrvServices/NvHostAsGpu/NvHostAsGpuDeviceFile.cs2
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; }