aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2021-07-10 16:50:10 -0300
committerGitHub <noreply@github.com>2021-07-10 21:50:10 +0200
commitb1a9d17cf85ab8322aeb700ad28d58f0edf63d08 (patch)
tree4cdbb4d729deea6f04f2e807fc588aff3b036128
parent59900d7f00b14681acfc7ef5e8d1e18d53664e1c (diff)
Fix GetWritableRegion write-back (#2456)
-rw-r--r--Ryujinx.Memory/IVirtualMemoryManager.cs4
-rw-r--r--Ryujinx.Memory/MemoryBlock.cs2
2 files changed, 4 insertions, 2 deletions
diff --git a/Ryujinx.Memory/IVirtualMemoryManager.cs b/Ryujinx.Memory/IVirtualMemoryManager.cs
index b5e08019..056940cc 100644
--- a/Ryujinx.Memory/IVirtualMemoryManager.cs
+++ b/Ryujinx.Memory/IVirtualMemoryManager.cs
@@ -66,7 +66,9 @@ namespace Ryujinx.Memory
{
int copySize = (int)Math.Min(MaxChunkSize, size - subOffset);
- GetWritableRegion(va + subOffset, copySize).Memory.Span.Fill(0);
+ using var writableRegion = GetWritableRegion(va + subOffset, copySize);
+
+ writableRegion.Memory.Span.Fill(0);
}
}
diff --git a/Ryujinx.Memory/MemoryBlock.cs b/Ryujinx.Memory/MemoryBlock.cs
index e331a453..25c66dfe 100644
--- a/Ryujinx.Memory/MemoryBlock.cs
+++ b/Ryujinx.Memory/MemoryBlock.cs
@@ -333,7 +333,7 @@ namespace Ryujinx.Memory
/// <exception cref="InvalidMemoryRegionException">Throw when either <paramref name="offset"/> or <paramref name="size"/> are out of range</exception>
public WritableRegion GetWritableRegion(ulong offset, int size)
{
- return new WritableRegion(this, offset, GetMemory(offset, size));
+ return new WritableRegion(null, offset, GetMemory(offset, size));
}
/// <summary>