Fix same textures with unmapped start being considered different (#7141)

* Fix same textures with unmapped start being considered different

* Consolidate IsInvalid check

* InvalidAddress const

* Fix typo

Co-authored-by: riperiperi <rhy3756547@hotmail.com>

---------

Co-authored-by: riperiperi <rhy3756547@hotmail.com>
This commit is contained in:
gdkchan
2024-08-05 11:00:41 -03:00
committed by GitHub
parent e85ee673b1
commit 4a4b11871e
3 changed files with 37 additions and 16 deletions

View File

@@ -5,6 +5,11 @@ namespace Ryujinx.Memory.Range
/// </summary>
public readonly record struct MemoryRange
{
/// <summary>
/// Special address value used to indicate than an address is invalid.
/// </summary>
internal const ulong InvalidAddress = ulong.MaxValue;
/// <summary>
/// An empty memory range, with a null address and zero size.
/// </summary>
@@ -58,13 +63,24 @@ namespace Ryujinx.Memory.Range
return thisAddress < otherEndAddress && otherAddress < thisEndAddress;
}
/// <summary>
/// Checks if a given sub-range of memory is invalid.
/// Those are used to represent unmapped memory regions (holes in the region mapping).
/// </summary>
/// <param name="subRange">Memory range to check</param>
/// <returns>True if the memory range is considered invalid, false otherwise</returns>
internal static bool IsInvalid(ref MemoryRange subRange)
{
return subRange.Address == InvalidAddress;
}
/// <summary>
/// Returns a string summary of the memory range.
/// </summary>
/// <returns>A string summary of the memory range</returns>
public override string ToString()
{
if (Address == ulong.MaxValue)
if (Address == InvalidAddress)
{
return $"[Unmapped 0x{Size:X}]";
}