From 0a75b73fa43ddadf561ddeb0f923c6f3811c025b Mon Sep 17 00:00:00 2001 From: TSRBerry <20988865+TSRBerry@users.noreply.github.com> Date: Wed, 28 Jun 2023 18:34:00 +0200 Subject: [PATCH] [Ryujinx.Memory] Address dotnet-format issues (#5386) * dotnet format style --severity info Some changes were manually reverted. * dotnet format analyzers --serverity info Some changes have been minimally adapted. * Silence dotnet format IDE0059 warnings * Address or silence dotnet format IDE1006 warnings * Address dotnet format CA1816 warnings * Address or silence dotnet format CA1069 warnings * Address remaining dotnet format analyzer warnings * Address review comments * Address most dotnet format whitespace warnings * Apply dotnet format whitespace formatting A few of them have been manually reverted and the corresponding warning was silenced * Format if-blocks correctly * Another rebase, another dotnet format run * Run dotnet format after rebase and remove unused usings - analyzers - style - whitespace * Add comments to disabled warnings * Simplify properties and array initialization, Use const when possible, Remove trailing commas * Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas" This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e. * dotnet format whitespace after rebase * Address review feedback * Assign Decommit to ReplacePlaceholder * Run final dotnet format pass * Organize imports again * Add trailing commas * Add missing newline --- src/Ryujinx.Memory/AddressSpaceManager.cs | 8 ++++---- src/Ryujinx.Memory/MemoryAllocationFlags.cs | 2 +- src/Ryujinx.Memory/MemoryBlock.cs | 6 +++--- src/Ryujinx.Memory/MemoryManagement.cs | 2 +- src/Ryujinx.Memory/MemoryManagementUnix.cs | 14 +++++++------- src/Ryujinx.Memory/MemoryManagementWindows.cs | 2 +- src/Ryujinx.Memory/MemoryManagerUnixHelper.cs | 8 ++++---- src/Ryujinx.Memory/MemoryMapFlags.cs | 2 +- src/Ryujinx.Memory/MemoryNotContiguousException.cs | 2 +- src/Ryujinx.Memory/MemoryPermission.cs | 2 +- src/Ryujinx.Memory/Range/HostMemoryRange.cs | 14 ++++++++++++-- src/Ryujinx.Memory/Range/IRange.cs | 2 +- src/Ryujinx.Memory/Range/MemoryRange.cs | 2 +- src/Ryujinx.Memory/Range/MultiRange.cs | 12 +++++++++++- src/Ryujinx.Memory/Range/RangeList.cs | 8 ++++---- src/Ryujinx.Memory/Tracking/MemoryTracking.cs | 8 ++++---- src/Ryujinx.Memory/Tracking/MultiRegionHandle.cs | 11 +++++++---- src/Ryujinx.Memory/Tracking/RegionHandle.cs | 14 +++++++++----- .../Tracking/SmartMultiRegionHandle.cs | 4 +++- src/Ryujinx.Memory/Tracking/VirtualRegion.cs | 9 ++++++--- src/Ryujinx.Memory/WindowsShared/MappingTree.cs | 2 +- .../WindowsShared/PlaceholderManager.cs | 12 ++++++------ src/Ryujinx.Memory/WindowsShared/WindowsApi.cs | 8 ++++---- .../WindowsShared/WindowsApiException.cs | 2 +- src/Ryujinx.Memory/WindowsShared/WindowsFlags.cs | 8 ++++---- 25 files changed, 98 insertions(+), 66 deletions(-) diff --git a/src/Ryujinx.Memory/AddressSpaceManager.cs b/src/Ryujinx.Memory/AddressSpaceManager.cs index ac89fca6..65b4d48f 100644 --- a/src/Ryujinx.Memory/AddressSpaceManager.cs +++ b/src/Ryujinx.Memory/AddressSpaceManager.cs @@ -136,7 +136,7 @@ namespace Ryujinx.Memory { size = Math.Min(data.Length, PageSize - (int)(va & PageMask)); - data.Slice(0, size).CopyTo(GetHostSpanContiguous(va, size)); + data[..size].CopyTo(GetHostSpanContiguous(va, size)); offset += size; } @@ -215,7 +215,7 @@ namespace Ryujinx.Memory /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - private int GetPagesCount(ulong va, uint size, out ulong startVa) + private static int GetPagesCount(ulong va, uint size, out ulong startVa) { // WARNING: Always check if ulong does not overflow during the operations. startVa = va & ~(ulong)PageMask; @@ -224,7 +224,7 @@ namespace Ryujinx.Memory return (int)(vaSpan / PageSize); } - private void ThrowMemoryNotContiguous() => throw new MemoryNotContiguousException(); + private static void ThrowMemoryNotContiguous() => throw new MemoryNotContiguousException(); [MethodImpl(MethodImplOptions.AggressiveInlining)] private bool IsContiguousAndMapped(ulong va, int size) => IsContiguous(va, size) && IsMapped(va); @@ -361,7 +361,7 @@ namespace Ryujinx.Memory { size = Math.Min(data.Length, PageSize - (int)(va & PageMask)); - GetHostSpanContiguous(va, size).CopyTo(data.Slice(0, size)); + GetHostSpanContiguous(va, size).CopyTo(data[..size]); offset += size; } diff --git a/src/Ryujinx.Memory/MemoryAllocationFlags.cs b/src/Ryujinx.Memory/MemoryAllocationFlags.cs index 6f0ef1aa..e5fa9360 100644 --- a/src/Ryujinx.Memory/MemoryAllocationFlags.cs +++ b/src/Ryujinx.Memory/MemoryAllocationFlags.cs @@ -47,6 +47,6 @@ namespace Ryujinx.Memory /// Indicates that the memory will be used to store JIT generated code. /// On some platforms, this requires special flags to be passed that will allow the memory to be executable. /// - Jit = 1 << 5 + Jit = 1 << 5, } } diff --git a/src/Ryujinx.Memory/MemoryBlock.cs b/src/Ryujinx.Memory/MemoryBlock.cs index e7fc4751..7d8d7cf0 100644 --- a/src/Ryujinx.Memory/MemoryBlock.cs +++ b/src/Ryujinx.Memory/MemoryBlock.cs @@ -364,9 +364,9 @@ namespace Ryujinx.Memory /// Native pointer /// Offset to add /// Native pointer with the added offset - private IntPtr PtrAddr(IntPtr pointer, ulong offset) + private static IntPtr PtrAddr(IntPtr pointer, ulong offset) { - return (IntPtr)(pointer.ToInt64() + (long)offset); + return new IntPtr(pointer.ToInt64() + (long)offset); } /// @@ -439,4 +439,4 @@ namespace Ryujinx.Memory private static void ThrowInvalidMemoryRegionException() => throw new InvalidMemoryRegionException(); } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Memory/MemoryManagement.cs b/src/Ryujinx.Memory/MemoryManagement.cs index 7acf8345..3415ba40 100644 --- a/src/Ryujinx.Memory/MemoryManagement.cs +++ b/src/Ryujinx.Memory/MemoryManagement.cs @@ -203,4 +203,4 @@ namespace Ryujinx.Memory } } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Memory/MemoryManagementUnix.cs b/src/Ryujinx.Memory/MemoryManagementUnix.cs index 4314c392..9827b59b 100644 --- a/src/Ryujinx.Memory/MemoryManagementUnix.cs +++ b/src/Ryujinx.Memory/MemoryManagementUnix.cs @@ -50,7 +50,7 @@ namespace Ryujinx.Memory } } - IntPtr ptr = mmap(IntPtr.Zero, size, prot, flags, -1, 0); + IntPtr ptr = Mmap(IntPtr.Zero, size, prot, flags, -1, 0); if (ptr == MAP_FAILED) { @@ -115,7 +115,7 @@ namespace Ryujinx.Memory MemoryPermission.ReadAndExecute => MmapProts.PROT_READ | MmapProts.PROT_EXEC, MemoryPermission.ReadWriteExecute => MmapProts.PROT_READ | MmapProts.PROT_WRITE | MmapProts.PROT_EXEC, MemoryPermission.Execute => MmapProts.PROT_EXEC, - _ => throw new MemoryProtectionException(permission) + _ => throw new MemoryProtectionException(permission), }; } @@ -185,12 +185,12 @@ namespace Ryujinx.Memory public static void DestroySharedMemory(IntPtr handle) { - close((int)handle); + close(handle.ToInt32()); } public static IntPtr MapSharedMemory(IntPtr handle, ulong size) { - return mmap(IntPtr.Zero, size, MmapProts.PROT_READ | MmapProts.PROT_WRITE, MmapFlags.MAP_SHARED, (int)handle, 0); + return Mmap(IntPtr.Zero, size, MmapProts.PROT_READ | MmapProts.PROT_WRITE, MmapFlags.MAP_SHARED, handle.ToInt32(), 0); } public static void UnmapSharedMemory(IntPtr address, ulong size) @@ -200,12 +200,12 @@ namespace Ryujinx.Memory public static void MapView(IntPtr sharedMemory, ulong srcOffset, IntPtr location, ulong size) { - mmap(location, size, MmapProts.PROT_READ | MmapProts.PROT_WRITE, MmapFlags.MAP_FIXED | MmapFlags.MAP_SHARED, (int)sharedMemory, (long)srcOffset); + Mmap(location, size, MmapProts.PROT_READ | MmapProts.PROT_WRITE, MmapFlags.MAP_FIXED | MmapFlags.MAP_SHARED, sharedMemory.ToInt32(), (long)srcOffset); } public static void UnmapView(IntPtr location, ulong size) { - mmap(location, size, MmapProts.PROT_NONE, MmapFlags.MAP_FIXED | MmapFlags.MAP_PRIVATE | MmapFlags.MAP_ANONYMOUS | MmapFlags.MAP_NORESERVE, -1, 0); + Mmap(location, size, MmapProts.PROT_NONE, MmapFlags.MAP_FIXED | MmapFlags.MAP_PRIVATE | MmapFlags.MAP_ANONYMOUS | MmapFlags.MAP_NORESERVE, -1, 0); } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Memory/MemoryManagementWindows.cs b/src/Ryujinx.Memory/MemoryManagementWindows.cs index aaed5a63..b5be5b3c 100644 --- a/src/Ryujinx.Memory/MemoryManagementWindows.cs +++ b/src/Ryujinx.Memory/MemoryManagementWindows.cs @@ -148,4 +148,4 @@ namespace Ryujinx.Memory } } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Memory/MemoryManagerUnixHelper.cs b/src/Ryujinx.Memory/MemoryManagerUnixHelper.cs index a7b207ab..6f36a6d5 100644 --- a/src/Ryujinx.Memory/MemoryManagerUnixHelper.cs +++ b/src/Ryujinx.Memory/MemoryManagerUnixHelper.cs @@ -14,7 +14,7 @@ namespace Ryujinx.Memory PROT_NONE = 0, PROT_READ = 1, PROT_WRITE = 2, - PROT_EXEC = 4 + PROT_EXEC = 4, } [Flags] @@ -26,7 +26,7 @@ namespace Ryujinx.Memory MAP_NORESERVE = 8, MAP_FIXED = 16, MAP_UNLOCKED = 32, - MAP_JIT_DARWIN = 0x800 + MAP_JIT_DARWIN = 0x800, } [Flags] @@ -164,9 +164,9 @@ namespace Ryujinx.Memory return result; } - public static IntPtr mmap(IntPtr address, ulong length, MmapProts prot, MmapFlags flags, int fd, long offset) + public static IntPtr Mmap(IntPtr address, ulong length, MmapProts prot, MmapFlags flags, int fd, long offset) { return Internal_mmap(address, length, prot, MmapFlagsToSystemFlags(flags), fd, offset); } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Memory/MemoryMapFlags.cs b/src/Ryujinx.Memory/MemoryMapFlags.cs index b4c74c8c..5c023cc1 100644 --- a/src/Ryujinx.Memory/MemoryMapFlags.cs +++ b/src/Ryujinx.Memory/MemoryMapFlags.cs @@ -18,6 +18,6 @@ namespace Ryujinx.Memory /// and allocate its own private storage for the mapping. /// This allows some mappings that would otherwise fail due to host platform restrictions to succeed. /// - Private = 1 << 0 + Private = 1 << 0, } } diff --git a/src/Ryujinx.Memory/MemoryNotContiguousException.cs b/src/Ryujinx.Memory/MemoryNotContiguousException.cs index 3106955b..3468adb9 100644 --- a/src/Ryujinx.Memory/MemoryNotContiguousException.cs +++ b/src/Ryujinx.Memory/MemoryNotContiguousException.cs @@ -16,4 +16,4 @@ namespace Ryujinx.Memory { } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Memory/MemoryPermission.cs b/src/Ryujinx.Memory/MemoryPermission.cs index 8c3e33cf..6e71d7b8 100644 --- a/src/Ryujinx.Memory/MemoryPermission.cs +++ b/src/Ryujinx.Memory/MemoryPermission.cs @@ -46,6 +46,6 @@ namespace Ryujinx.Memory /// /// Indicates an invalid protection. /// - Invalid = 255 + Invalid = 255, } } diff --git a/src/Ryujinx.Memory/Range/HostMemoryRange.cs b/src/Ryujinx.Memory/Range/HostMemoryRange.cs index 79c649d8..a4abebb5 100644 --- a/src/Ryujinx.Memory/Range/HostMemoryRange.cs +++ b/src/Ryujinx.Memory/Range/HostMemoryRange.cs @@ -5,12 +5,12 @@ namespace Ryujinx.Memory.Range /// /// Range of memory composed of an address and size. /// - public struct HostMemoryRange : IEquatable + public readonly struct HostMemoryRange : IEquatable { /// /// An empty memory range, with a null address and zero size. /// - public static HostMemoryRange Empty => new HostMemoryRange(0, 0); + public static HostMemoryRange Empty => new(0, 0); /// /// Start address of the range. @@ -67,5 +67,15 @@ namespace Ryujinx.Memory.Range { return HashCode.Combine(Address, Size); } + + public static bool operator ==(HostMemoryRange left, HostMemoryRange right) + { + return left.Equals(right); + } + + public static bool operator !=(HostMemoryRange left, HostMemoryRange right) + { + return !(left == right); + } } } diff --git a/src/Ryujinx.Memory/Range/IRange.cs b/src/Ryujinx.Memory/Range/IRange.cs index 1685396d..c85e21d1 100644 --- a/src/Ryujinx.Memory/Range/IRange.cs +++ b/src/Ryujinx.Memory/Range/IRange.cs @@ -28,4 +28,4 @@ namespace Ryujinx.Memory.Range /// True if overlapping, false otherwise bool OverlapsWith(ulong address, ulong size); } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Memory/Range/MemoryRange.cs b/src/Ryujinx.Memory/Range/MemoryRange.cs index c7ee6db2..7e7b84b5 100644 --- a/src/Ryujinx.Memory/Range/MemoryRange.cs +++ b/src/Ryujinx.Memory/Range/MemoryRange.cs @@ -8,7 +8,7 @@ /// /// An empty memory range, with a null address and zero size. /// - public static MemoryRange Empty => new MemoryRange(0UL, 0); + public static MemoryRange Empty => new(0UL, 0); /// /// Start address of the range. diff --git a/src/Ryujinx.Memory/Range/MultiRange.cs b/src/Ryujinx.Memory/Range/MultiRange.cs index 42ef24be..7011e528 100644 --- a/src/Ryujinx.Memory/Range/MultiRange.cs +++ b/src/Ryujinx.Memory/Range/MultiRange.cs @@ -310,7 +310,7 @@ namespace Ryujinx.Memory.Range return _singleRange.GetHashCode(); } - HashCode hash = new HashCode(); + HashCode hash = new(); foreach (MemoryRange range in _ranges) { @@ -328,5 +328,15 @@ namespace Ryujinx.Memory.Range { return HasSingleRange ? _singleRange.ToString() : string.Join(", ", _ranges); } + + public static bool operator ==(MultiRange left, MultiRange right) + { + return left.Equals(right); + } + + public static bool operator !=(MultiRange left, MultiRange right) + { + return !(left == right); + } } } diff --git a/src/Ryujinx.Memory/Range/RangeList.cs b/src/Ryujinx.Memory/Range/RangeList.cs index 46919597..72cef1de 100644 --- a/src/Ryujinx.Memory/Range/RangeList.cs +++ b/src/Ryujinx.Memory/Range/RangeList.cs @@ -238,7 +238,7 @@ namespace Ryujinx.Memory.Range if (index < 0) { - return default(T); + return default; } return _items[index].Value; @@ -398,7 +398,7 @@ namespace Ryujinx.Memory.Range /// List index of the item, or complement index of nearest item with lower value on the list private int BinarySearch(ulong address) { - int left = 0; + int left = 0; int right = Count - 1; while (left <= right) @@ -435,7 +435,7 @@ namespace Ryujinx.Memory.Range /// List index of the item, or complement index of nearest item with lower value on the list private int BinarySearch(ulong address, ulong endAddress) { - int left = 0; + int left = 0; int right = Count - 1; while (left <= right) @@ -480,4 +480,4 @@ namespace Ryujinx.Memory.Range } } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Memory/Tracking/MemoryTracking.cs b/src/Ryujinx.Memory/Tracking/MemoryTracking.cs index bf1e0ad3..ab9d9893 100644 --- a/src/Ryujinx.Memory/Tracking/MemoryTracking.cs +++ b/src/Ryujinx.Memory/Tracking/MemoryTracking.cs @@ -21,7 +21,7 @@ namespace Ryujinx.Memory.Tracking /// This lock must be obtained when traversing or updating the region-handle hierarchy. /// It is not required when reading dirty flags. /// - internal object TrackingLock = new object(); + internal object TrackingLock = new(); /// /// Create a new tracking structure for the given "physical" memory block, @@ -114,7 +114,7 @@ namespace Ryujinx.Memory.Tracking /// A list of virtual regions within the given range internal List GetVirtualRegionsForHandle(ulong va, ulong size) { - List result = new List(); + List result = new(); _virtualRegions.GetOrAddRegions(result, va, size, (va, size) => new VirtualRegion(this, va, size)); return result; @@ -172,7 +172,7 @@ namespace Ryujinx.Memory.Tracking lock (TrackingLock) { bool mapped = _memoryManager.IsRangeMapped(address, size); - RegionHandle handle = new RegionHandle(this, paAddress, paSize, address, size, id, mapped); + RegionHandle handle = new(this, paAddress, paSize, address, size, id, mapped); return handle; } @@ -194,7 +194,7 @@ namespace Ryujinx.Memory.Tracking lock (TrackingLock) { bool mapped = _memoryManager.IsRangeMapped(address, size); - RegionHandle handle = new RegionHandle(this, paAddress, paSize, address, size, bitmap, bit, id, mapped); + RegionHandle handle = new(this, paAddress, paSize, address, size, bitmap, bit, id, mapped); return handle; } diff --git a/src/Ryujinx.Memory/Tracking/MultiRegionHandle.cs b/src/Ryujinx.Memory/Tracking/MultiRegionHandle.cs index 68fc5e75..5d3f20f4 100644 --- a/src/Ryujinx.Memory/Tracking/MultiRegionHandle.cs +++ b/src/Ryujinx.Memory/Tracking/MultiRegionHandle.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Numerics; using System.Runtime.CompilerServices; using System.Threading; @@ -21,11 +22,11 @@ namespace Ryujinx.Memory.Tracking private readonly ulong Granularity; private readonly ulong Size; - private ConcurrentBitmap _dirtyBitmap; + private readonly ConcurrentBitmap _dirtyBitmap; private int _sequenceNumber; - private BitMap _sequenceNumberBitmap; - private BitMap _dirtyCheckedBitmap; + private readonly BitMap _sequenceNumberBitmap; + private readonly BitMap _dirtyCheckedBitmap; private int _uncheckedHandles; public bool Dirty { get; private set; } = true; @@ -54,7 +55,7 @@ namespace Ryujinx.Memory.Tracking // It is assumed that the provided handles do not overlap, in order, are on page boundaries, // and don't extend past the requested range. - foreach (RegionHandle handle in handles) + foreach (RegionHandle handle in handles.Cast()) { int startIndex = (int)((handle.RealAddress - address) / granularity); @@ -406,6 +407,8 @@ namespace Ryujinx.Memory.Tracking public void Dispose() { + GC.SuppressFinalize(this); + foreach (var handle in _handles) { handle.Dispose(); diff --git a/src/Ryujinx.Memory/Tracking/RegionHandle.cs b/src/Ryujinx.Memory/Tracking/RegionHandle.cs index 77794488..d36207ca 100644 --- a/src/Ryujinx.Memory/Tracking/RegionHandle.cs +++ b/src/Ryujinx.Memory/Tracking/RegionHandle.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Reflection.Metadata; using System.Threading; namespace Ryujinx.Memory.Tracking @@ -50,7 +49,7 @@ namespace Ryujinx.Memory.Tracking internal IMultiRegionHandle Parent { get; set; } - private event Action _onDirty; + private event Action OnDirty; private readonly object _preActionLock = new(); private RegionSignal _preAction; // Action to perform before a read or write. This will block the memory access. @@ -269,7 +268,7 @@ namespace Ryujinx.Memory.Tracking Dirty = true; if (!oldDirty) { - _onDirty?.Invoke(); + OnDirty?.Invoke(); } Parent?.SignalWrite(); } @@ -311,7 +310,10 @@ namespace Ryujinx.Memory.Tracking /// True if this reprotect is the result of consecutive dirty checks public void Reprotect(bool asDirty, bool consecutiveCheck = false) { - if (_volatile) return; + if (_volatile) + { + return; + } Dirty = asDirty; @@ -403,7 +405,7 @@ namespace Ryujinx.Memory.Tracking /// Action to call on dirty public void RegisterDirtyEvent(Action action) { - _onDirty += action; + OnDirty += action; } /// @@ -461,6 +463,8 @@ namespace Ryujinx.Memory.Tracking { ObjectDisposedException.ThrowIf(_disposed, this); + GC.SuppressFinalize(this); + _disposed = true; lock (_tracking.TrackingLock) diff --git a/src/Ryujinx.Memory/Tracking/SmartMultiRegionHandle.cs b/src/Ryujinx.Memory/Tracking/SmartMultiRegionHandle.cs index 4acddefa..bab00377 100644 --- a/src/Ryujinx.Memory/Tracking/SmartMultiRegionHandle.cs +++ b/src/Ryujinx.Memory/Tracking/SmartMultiRegionHandle.cs @@ -17,7 +17,7 @@ namespace Ryujinx.Memory.Tracking private readonly ulong _address; private readonly ulong _granularity; private readonly ulong _size; - private MemoryTracking _tracking; + private readonly MemoryTracking _tracking; private readonly int _id; public bool Dirty { get; private set; } = true; @@ -271,6 +271,8 @@ namespace Ryujinx.Memory.Tracking public void Dispose() { + GC.SuppressFinalize(this); + foreach (var handle in _handles) { handle?.Dispose(); diff --git a/src/Ryujinx.Memory/Tracking/VirtualRegion.cs b/src/Ryujinx.Memory/Tracking/VirtualRegion.cs index 9651426b..e595196c 100644 --- a/src/Ryujinx.Memory/Tracking/VirtualRegion.cs +++ b/src/Ryujinx.Memory/Tracking/VirtualRegion.cs @@ -8,7 +8,7 @@ namespace Ryujinx.Memory.Tracking /// class VirtualRegion : AbstractRegion { - public List Handles = new List(); + public List Handles = new(); private readonly MemoryTracking _tracking; private MemoryPermission _lastPermission; @@ -86,7 +86,10 @@ namespace Ryujinx.Memory.Tracking foreach (var handle in Handles) { result &= handle.RequiredPermission; - if (result == 0) return result; + if (result == 0) + { + return result; + } } return result; } @@ -128,7 +131,7 @@ namespace Ryujinx.Memory.Tracking public override INonOverlappingRange Split(ulong splitAddress) { - VirtualRegion newRegion = new VirtualRegion(_tracking, splitAddress, EndAddress - splitAddress, _lastPermission); + VirtualRegion newRegion = new(_tracking, splitAddress, EndAddress - splitAddress, _lastPermission); Size = splitAddress - Address; // The new region inherits all of our parents. diff --git a/src/Ryujinx.Memory/WindowsShared/MappingTree.cs b/src/Ryujinx.Memory/WindowsShared/MappingTree.cs index 97758c2b..9ca84b56 100644 --- a/src/Ryujinx.Memory/WindowsShared/MappingTree.cs +++ b/src/Ryujinx.Memory/WindowsShared/MappingTree.cs @@ -84,4 +84,4 @@ namespace Ryujinx.Memory.WindowsShared } } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Memory/WindowsShared/PlaceholderManager.cs b/src/Ryujinx.Memory/WindowsShared/PlaceholderManager.cs index 3022b661..b68a076c 100644 --- a/src/Ryujinx.Memory/WindowsShared/PlaceholderManager.cs +++ b/src/Ryujinx.Memory/WindowsShared/PlaceholderManager.cs @@ -31,9 +31,11 @@ namespace Ryujinx.Memory.WindowsShared _partialUnmapStatePtr = PartialUnmapState.GlobalState; - _partialUnmapTrimThread = new Thread(TrimThreadLocalMapLoop); - _partialUnmapTrimThread.Name = "CPU.PartialUnmapTrimThread"; - _partialUnmapTrimThread.IsBackground = true; + _partialUnmapTrimThread = new Thread(TrimThreadLocalMapLoop) + { + Name = "CPU.PartialUnmapTrimThread", + IsBackground = true, + }; _partialUnmapTrimThread.Start(); } @@ -704,8 +706,6 @@ namespace Ryujinx.Memory.WindowsShared count = _protections.GetNodes(address, endAddress, ref overlaps); } - ulong startAddress = address; - for (int index = 0; index < count; index++) { var protection = overlaps[index]; @@ -733,4 +733,4 @@ namespace Ryujinx.Memory.WindowsShared } } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Memory/WindowsShared/WindowsApi.cs b/src/Ryujinx.Memory/WindowsShared/WindowsApi.cs index c554e320..82903c05 100644 --- a/src/Ryujinx.Memory/WindowsShared/WindowsApi.cs +++ b/src/Ryujinx.Memory/WindowsShared/WindowsApi.cs @@ -7,8 +7,8 @@ namespace Ryujinx.Memory.WindowsShared [SupportedOSPlatform("windows")] static partial class WindowsApi { - public static readonly IntPtr InvalidHandleValue = new IntPtr(-1); - public static readonly IntPtr CurrentProcessHandle = new IntPtr(-1); + public static readonly IntPtr InvalidHandleValue = new(-1); + public static readonly IntPtr CurrentProcessHandle = new(-1); [LibraryImport("kernel32.dll", SetLastError = true)] public static partial IntPtr VirtualAlloc( @@ -96,8 +96,8 @@ namespace Ryujinx.Memory.WindowsShared MemoryPermission.ReadAndExecute => MemoryProtection.ExecuteRead, MemoryPermission.ReadWriteExecute => MemoryProtection.ExecuteReadWrite, MemoryPermission.Execute => MemoryProtection.Execute, - _ => throw new MemoryProtectionException(permission) + _ => throw new MemoryProtectionException(permission), }; } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Memory/WindowsShared/WindowsApiException.cs b/src/Ryujinx.Memory/WindowsShared/WindowsApiException.cs index 330c1842..308006ab 100644 --- a/src/Ryujinx.Memory/WindowsShared/WindowsApiException.cs +++ b/src/Ryujinx.Memory/WindowsShared/WindowsApiException.cs @@ -23,4 +23,4 @@ namespace Ryujinx.Memory.WindowsShared return $"{functionName} returned error code 0x{WindowsApi.GetLastError():X}."; } } -} \ No newline at end of file +} diff --git a/src/Ryujinx.Memory/WindowsShared/WindowsFlags.cs b/src/Ryujinx.Memory/WindowsShared/WindowsFlags.cs index ca69cfe9..7dd4215e 100644 --- a/src/Ryujinx.Memory/WindowsShared/WindowsFlags.cs +++ b/src/Ryujinx.Memory/WindowsShared/WindowsFlags.cs @@ -10,14 +10,14 @@ namespace Ryujinx.Memory.WindowsShared Commit = 0x1000, Reserve = 0x2000, Decommit = 0x4000, - ReplacePlaceholder = 0x4000, + ReplacePlaceholder = Decommit, Release = 0x8000, ReservePlaceholder = 0x40000, Reset = 0x80000, Physical = 0x400000, TopDown = 0x100000, WriteWatch = 0x200000, - LargePages = 0x20000000 + LargePages = 0x20000000, } [Flags] @@ -33,7 +33,7 @@ namespace Ryujinx.Memory.WindowsShared ExecuteWriteCopy = 0x80, GuardModifierflag = 0x100, NoCacheModifierflag = 0x200, - WriteCombineModifierflag = 0x400 + WriteCombineModifierflag = 0x400, } [Flags] @@ -47,6 +47,6 @@ namespace Ryujinx.Memory.WindowsShared SectionCommit = 0x8000000, SectionImage = 0x1000000, SectionNoCache = 0x10000000, - SectionReserve = 0x4000000 + SectionReserve = 0x4000000, } }