diff options
author | TSRBerry <20988865+TSRBerry@users.noreply.github.com> | 2023-07-16 19:31:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-16 19:31:14 +0200 |
commit | 326749498bed4360e5a4b11fc67d5ec7cb9a3076 (patch) | |
tree | ae21fb26f99b401ca4e9efaab72b679a81c22369 /src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs | |
parent | fec8291c17fa106c28f58b56419e90d49a41a1ea (diff) |
[Ryujinx.HLE] Address dotnet-format issues (#5380)1.1.962
* dotnet format style --severity info
Some changes were manually reverted.
* dotnet format analyzers --serverity info
Some changes have been minimally adapted.
* Restore a few unused methods and variables
* Silence dotnet format IDE0060 warnings
* Silence dotnet format IDE0052 warnings
* Address or silence dotnet format IDE1006 warnings
* Address dotnet format CA1816 warnings
* Address or silence dotnet format CA2208 warnings
* Address or silence dotnet format CA1806 and a few CA1854 warnings
* Address dotnet format CA2211 warnings
* Address dotnet format CA1822 warnings
* Address or silence dotnet format CA1069 warnings
* Make dotnet format succeed in style mode
* Address or silence dotnet format CA2211 warnings
* Address review comments
* Address dotnet format CA2208 warnings properly
* Make ProcessResult readonly
* 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
* Add previously silenced warnings back
I have no clue how these disappeared
* Revert formatting changes for while and for-loops
* Format if-blocks correctly
* Run dotnet format style after rebase
* Run dotnet format whitespace after rebase
* Run dotnet format style after rebase
* Run dotnet format analyzers after rebase
* Run dotnet format after rebase and remove unused usings
- analyzers
- style
- whitespace
* Disable 'prefer switch expression' rule
* Add comments to disabled warnings
* Fix a few disabled warnings
* Fix naming rule violation, Convert shader properties to auto-property and convert values to const
* Simplify properties and array initialization, Use const when possible, Remove trailing commas
* Start working on disabled warnings
* Fix and silence a few dotnet-format warnings again
* Run dotnet format after rebase
* Use using declaration instead of block syntax
* Address IDE0251 warnings
* Address a few disabled IDE0060 warnings
* Silence IDE0060 in .editorconfig
* Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas"
This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e.
* dotnet format whitespace after rebase
* First dotnet format pass
* Fix naming rule violations
* Fix typo
* Add trailing commas, use targeted new and use array initializer
* Fix build issues
* Fix remaining build issues
* Remove SuppressMessage for CA1069 where possible
* Address dotnet format issues
* Address formatting issues
Co-authored-by: Ac_K <acoustik666@gmail.com>
* Add GetHashCode implementation for RenderingSurfaceInfo
* Explicitly silence CA1822 for every affected method in Syscall
* Address formatting issues in Demangler.cs
* Address review feedback
Co-authored-by: Ac_K <acoustik666@gmail.com>
* Revert marking service methods as static
* Next dotnet format pass
* Address review feedback
---------
Co-authored-by: Ac_K <acoustik666@gmail.com>
Diffstat (limited to 'src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs')
-rw-r--r-- | src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs | 125 |
1 files changed, 83 insertions, 42 deletions
diff --git a/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs b/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs index 83604b42..807020c6 100644 --- a/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs +++ b/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs @@ -26,14 +26,14 @@ namespace Ryujinx.HLE.FileSystem { public class VirtualFileSystem : IDisposable { - public static string SafeNandPath = Path.Combine(AppDataManager.DefaultNandDir, "safe"); - public static string SystemNandPath = Path.Combine(AppDataManager.DefaultNandDir, "system"); - public static string UserNandPath = Path.Combine(AppDataManager.DefaultNandDir, "user"); + public static readonly string SafeNandPath = Path.Combine(AppDataManager.DefaultNandDir, "safe"); + public static readonly string SystemNandPath = Path.Combine(AppDataManager.DefaultNandDir, "system"); + public static readonly string UserNandPath = Path.Combine(AppDataManager.DefaultNandDir, "user"); - public KeySet KeySet { get; private set; } - public EmulatedGameCard GameCard { get; private set; } - public EmulatedSdCard SdCard { get; private set; } - public ModLoader ModLoader { get; private set; } + public KeySet KeySet { get; private set; } + public EmulatedGameCard GameCard { get; private set; } + public EmulatedSdCard SdCard { get; private set; } + public ModLoader ModLoader { get; private set; } private readonly ConcurrentDictionary<ulong, Stream> _romFsByPid; @@ -85,15 +85,15 @@ namespace Ryujinx.HLE.FileSystem return _romFsByPid[pid]; } - public string GetFullPath(string basePath, string fileName) + public static string GetFullPath(string basePath, string fileName) { if (fileName.StartsWith("//")) { - fileName = fileName.Substring(2); + fileName = fileName[2..]; } else if (fileName.StartsWith('/')) { - fileName = fileName.Substring(1); + fileName = fileName[1..]; } else { @@ -110,10 +110,10 @@ namespace Ryujinx.HLE.FileSystem return fullPath; } - internal string GetSdCardPath() => MakeFullPath(AppDataManager.DefaultSdcardDir); - public string GetNandPath() => MakeFullPath(AppDataManager.DefaultNandDir); + internal static string GetSdCardPath() => MakeFullPath(AppDataManager.DefaultSdcardDir); + public static string GetNandPath() => MakeFullPath(AppDataManager.DefaultNandDir); - public string SwitchPathToSystemPath(string switchPath) + public static string SwitchPathToSystemPath(string switchPath) { string[] parts = switchPath.Split(":"); @@ -125,7 +125,7 @@ namespace Ryujinx.HLE.FileSystem return GetFullPath(MakeFullPath(parts[0]), parts[1]); } - public string SystemPathToSwitchPath(string systemPath) + public static string SystemPathToSwitchPath(string systemPath) { string baseSystemPath = AppDataManager.BaseDirPath + Path.DirectorySeparatorChar; @@ -148,7 +148,7 @@ namespace Ryujinx.HLE.FileSystem return null; } - private string MakeFullPath(string path, bool isDirectory = true) + private static string MakeFullPath(string path, bool isDirectory = true) { // Handles Common Switch Content Paths switch (path) @@ -185,7 +185,7 @@ namespace Ryujinx.HLE.FileSystem public void InitializeFsServer(LibHac.Horizon horizon, out HorizonClient fsServerClient) { - LocalFileSystem serverBaseFs = new LocalFileSystem(AppDataManager.BaseDirPath); + LocalFileSystem serverBaseFs = new(AppDataManager.BaseDirPath); fsServerClient = horizon.CreatePrivilegedHorizonClient(); var fsServer = new FileSystemServer(fsServerClient); @@ -207,7 +207,7 @@ namespace Ryujinx.HLE.FileSystem DeviceOperator = fsServerObjects.DeviceOperator, ExternalKeySet = KeySet.ExternalKeySet, FsCreators = fsServerObjects.FsCreators, - RandomGenerator = randomGenerator + RandomGenerator = randomGenerator, }; FileSystemServerInitializer.InitializeWithConfig(fsServerClient, fsServer, fsServerConfig); @@ -282,16 +282,28 @@ namespace Ryujinx.HLE.FileSystem public static Result FixExtraData(HorizonClient hos) { Result rc = GetSystemSaveList(hos, out List<ulong> systemSaveIds); - if (rc.IsFailure()) return rc; + if (rc.IsFailure()) + { + return rc; + } rc = FixUnindexedSystemSaves(hos, systemSaveIds); - if (rc.IsFailure()) return rc; + if (rc.IsFailure()) + { + return rc; + } rc = FixExtraDataInSpaceId(hos, SaveDataSpaceId.System); - if (rc.IsFailure()) return rc; + if (rc.IsFailure()) + { + return rc; + } rc = FixExtraDataInSpaceId(hos, SaveDataSpaceId.User); - if (rc.IsFailure()) return rc; + if (rc.IsFailure()) + { + return rc; + } return Result.Success; } @@ -303,15 +315,23 @@ namespace Ryujinx.HLE.FileSystem using var iterator = new UniqueRef<SaveDataIterator>(); Result rc = hos.Fs.OpenSaveDataIterator(ref iterator.Ref, spaceId); - if (rc.IsFailure()) return rc; + if (rc.IsFailure()) + { + return rc; + } while (true) { rc = iterator.Get.ReadSaveDataInfo(out long count, info); - if (rc.IsFailure()) return rc; + if (rc.IsFailure()) + { + return rc; + } if (count == 0) + { return Result.Success; + } for (int i = 0; i < count; i++) { @@ -351,7 +371,9 @@ namespace Ryujinx.HLE.FileSystem private static Result CreateSaveDataDirectory(HorizonClient hos, in SaveDataInfo info) { if (info.SpaceId != SaveDataSpaceId.User && info.SpaceId != SaveDataSpaceId.System) + { return Result.Success; + } const string MountName = "SaveDir"; var mountNameU8 = MountName.ToU8Span(); @@ -360,11 +382,15 @@ namespace Ryujinx.HLE.FileSystem { SaveDataSpaceId.System => BisPartitionId.System, SaveDataSpaceId.User => BisPartitionId.User, - _ => throw new ArgumentOutOfRangeException() + _ => throw new ArgumentOutOfRangeException(nameof(info), info.SpaceId, null), }; Result rc = hos.Fs.MountBis(mountNameU8, partitionId); - if (rc.IsFailure()) return rc; + if (rc.IsFailure()) + { + return rc; + } + try { var path = $"{MountName}:/save/{info.SaveDataId:x16}".ToU8Span(); @@ -391,28 +417,38 @@ namespace Ryujinx.HLE.FileSystem var mountName = "system".ToU8Span(); DirectoryHandle handle = default; - List<ulong> localList = new List<ulong>(); + List<ulong> localList = new(); try { Result rc = hos.Fs.MountBis(mountName, BisPartitionId.System); - if (rc.IsFailure()) return rc; + if (rc.IsFailure()) + { + return rc; + } rc = hos.Fs.OpenDirectory(out handle, "system:/save".ToU8Span(), OpenDirectoryMode.All); - if (rc.IsFailure()) return rc; + if (rc.IsFailure()) + { + return rc; + } - DirectoryEntry entry = new DirectoryEntry(); + DirectoryEntry entry = new(); while (true) { rc = hos.Fs.ReadDirectory(out long readCount, SpanHelpers.AsSpan(ref entry), handle); - if (rc.IsFailure()) return rc; + if (rc.IsFailure()) + { + return rc; + } if (readCount == 0) + { break; + } - if (Utf8Parser.TryParse(entry.Name, out ulong saveDataId, out int bytesRead, 'x') && - bytesRead == 16 && (long)saveDataId < 0) + if (Utf8Parser.TryParse(entry.Name, out ulong saveDataId, out int bytesRead, 'x') && bytesRead == 16 && (long)saveDataId < 0) { localList.Add(saveDataId); } @@ -440,7 +476,7 @@ namespace Ryujinx.HLE.FileSystem // Only save data IDs added to SystemExtraDataFixInfo will be fixed. private static Result FixUnindexedSystemSaves(HorizonClient hos, List<ulong> existingSaveIds) { - foreach (var fixInfo in SystemExtraDataFixInfo) + foreach (var fixInfo in _systemExtraDataFixInfo) { if (!existingSaveIds.Contains(fixInfo.StaticSaveDataId)) { @@ -472,7 +508,9 @@ namespace Ryujinx.HLE.FileSystem if (!rc.IsSuccess()) { if (!ResultFs.TargetNotFound.Includes(rc)) + { return rc; + } // We'll reach this point only if the save data directory exists but it's not in the save data indexer. // Creating the save will add it to the indexer while leaving its existing contents intact. @@ -492,7 +530,7 @@ namespace Ryujinx.HLE.FileSystem OwnerId = info.OwnerId, Flags = info.Flags, DataSize = info.DataSize, - JournalSize = info.JournalSize + JournalSize = info.JournalSize, }; // Make a mask for writing the entire extra data @@ -507,9 +545,11 @@ namespace Ryujinx.HLE.FileSystem { wasFixNeeded = true; - Result rc = hos.Fs.Impl.ReadSaveDataFileSystemExtraData(out SaveDataExtraData extraData, info.SpaceId, - info.SaveDataId); - if (rc.IsFailure()) return rc; + Result rc = hos.Fs.Impl.ReadSaveDataFileSystemExtraData(out SaveDataExtraData extraData, info.SpaceId, info.SaveDataId); + if (rc.IsFailure()) + { + return rc; + } // The extra data should have program ID or static save data ID set if it's valid. // We only try to fix the extra data if the info from the save data indexer has a program ID or static save data ID. @@ -543,7 +583,7 @@ namespace Ryujinx.HLE.FileSystem else { // Try to match the system save with one of the known saves - foreach (ExtraDataFixInfo fixInfo in SystemExtraDataFixInfo) + foreach (ExtraDataFixInfo fixInfo in _systemExtraDataFixInfo) { if (extraData.Attribute.StaticSaveDataId == fixInfo.StaticSaveDataId) { @@ -573,7 +613,7 @@ namespace Ryujinx.HLE.FileSystem public long JournalSize; } - private static readonly ExtraDataFixInfo[] SystemExtraDataFixInfo = + private static readonly ExtraDataFixInfo[] _systemExtraDataFixInfo = { new ExtraDataFixInfo() { @@ -581,7 +621,7 @@ namespace Ryujinx.HLE.FileSystem OwnerId = 0x010000000000001F, Flags = SaveDataFlags.KeepAfterResettingSystemSaveDataWithoutUserSaveData, DataSize = 0x10000, - JournalSize = 0x10000 + JournalSize = 0x10000, }, new ExtraDataFixInfo() { @@ -589,12 +629,13 @@ namespace Ryujinx.HLE.FileSystem OwnerId = 0x0100000000001009, Flags = SaveDataFlags.None, DataSize = 0xC000, - JournalSize = 0xC000 - } + JournalSize = 0xC000, + }, }; public void Dispose() { + GC.SuppressFinalize(this); Dispose(true); } |