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
This commit is contained in:
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
Reference in New Issue
Block a user