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.Memory/Range | |
| 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.Memory/Range')
| -rw-r--r-- | Ryujinx.Memory/Range/MemoryRange.cs | 21 | ||||
| -rw-r--r-- | Ryujinx.Memory/Range/MultiRange.cs | 2 |
2 files changed, 3 insertions, 20 deletions
diff --git a/Ryujinx.Memory/Range/MemoryRange.cs b/Ryujinx.Memory/Range/MemoryRange.cs index 33d2439f..7465fbcb 100644 --- a/Ryujinx.Memory/Range/MemoryRange.cs +++ b/Ryujinx.Memory/Range/MemoryRange.cs @@ -1,11 +1,9 @@ -using System; - -namespace Ryujinx.Memory.Range +namespace Ryujinx.Memory.Range { /// <summary> /// Range of memory composed of an address and size. /// </summary> - public struct MemoryRange : IEquatable<MemoryRange> + public readonly record struct MemoryRange { /// <summary> /// An empty memory range, with a null address and zero size. @@ -59,20 +57,5 @@ namespace Ryujinx.Memory.Range return thisAddress < otherEndAddress && otherAddress < thisEndAddress; } - - public override bool Equals(object obj) - { - return obj is MemoryRange other && Equals(other); - } - - public bool Equals(MemoryRange other) - { - return Address == other.Address && Size == other.Size; - } - - public override int GetHashCode() - { - return HashCode.Combine(Address, Size); - } } } diff --git a/Ryujinx.Memory/Range/MultiRange.cs b/Ryujinx.Memory/Range/MultiRange.cs index 21ca5f09..e95af02f 100644 --- a/Ryujinx.Memory/Range/MultiRange.cs +++ b/Ryujinx.Memory/Range/MultiRange.cs @@ -6,7 +6,7 @@ namespace Ryujinx.Memory.Range /// <summary> /// Sequence of physical memory regions that a single non-contiguous virtual memory region maps to. /// </summary> - public struct MultiRange : IEquatable<MultiRange> + public readonly struct MultiRange : IEquatable<MultiRange> { private readonly MemoryRange _singleRange; private readonly MemoryRange[] _ranges; |
