diff options
Diffstat (limited to 'src/Ryujinx.Cpu/MemoryEhMeilleure.cs')
-rw-r--r-- | src/Ryujinx.Cpu/MemoryEhMeilleure.cs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/Ryujinx.Cpu/MemoryEhMeilleure.cs b/src/Ryujinx.Cpu/MemoryEhMeilleure.cs index 0b434ea7..9aa101aa 100644 --- a/src/Ryujinx.Cpu/MemoryEhMeilleure.cs +++ b/src/Ryujinx.Cpu/MemoryEhMeilleure.cs @@ -10,7 +10,6 @@ namespace Ryujinx.Cpu { private delegate bool TrackingEventDelegate(ulong address, ulong size, bool write); - private readonly MemoryTracking _tracking; private readonly TrackingEventDelegate _trackingEvent; private readonly ulong _baseAddress; @@ -18,12 +17,10 @@ namespace Ryujinx.Cpu public MemoryEhMeilleure(MemoryBlock addressSpace, MemoryBlock addressSpaceMirror, MemoryTracking tracking) { - _tracking = tracking; - _baseAddress = (ulong)addressSpace.Pointer; ulong endAddress = _baseAddress + addressSpace.Size; - _trackingEvent = new TrackingEventDelegate(tracking.VirtualMemoryEvent); + _trackingEvent = tracking.VirtualMemoryEvent; bool added = NativeSignalHandler.AddTrackedRegion((nuint)_baseAddress, (nuint)endAddress, Marshal.GetFunctionPointerForDelegate(_trackingEvent)); if (!added) @@ -51,6 +48,8 @@ namespace Ryujinx.Cpu public void Dispose() { + GC.SuppressFinalize(this); + NativeSignalHandler.RemoveTrackedRegion((nuint)_baseAddress); if (_mirrorAddress != 0) |