From f6850bcc1ab86c755069d22cc1781034e97eb121 Mon Sep 17 00:00:00 2001
From: Emmanuel Hansen <emmausssss@gmail.com>
Date: Sun, 29 Oct 2023 07:35:54 +0000
Subject: [PATCH] rebase fix

---
 src/LibRyujinx/LibRyujinx.cs                  | 22 +++++++++++--------
 .../PartitionFileSystemExtensions.cs          |  2 +-
 2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/src/LibRyujinx/LibRyujinx.cs b/src/LibRyujinx/LibRyujinx.cs
index 51dd76156..321bdad69 100644
--- a/src/LibRyujinx/LibRyujinx.cs
+++ b/src/LibRyujinx/LibRyujinx.cs
@@ -159,7 +159,7 @@ namespace LibRyujinx
             {
                 try
                 {
-                    PartitionFileSystem pfs;
+                    IFileSystem pfs;
 
                     bool isExeFs = false;
 
@@ -171,7 +171,9 @@ namespace LibRyujinx
                     }
                     else
                     {
-                        pfs = new PartitionFileSystem(gameStream.AsStorage());
+                        var pfsTemp = new PartitionFileSystem();
+                        pfsTemp.Initialize(gameStream.AsStorage()).ThrowIfFailure();
+                        pfs = pfsTemp;
 
                         // If the NSP doesn't have a main NCA, decrement the number of applications found and then continue to the next application.
                         bool hasMainNca = false;
@@ -372,7 +374,7 @@ namespace LibRyujinx
                 version = controlData.DisplayVersionString.ToString();
             }
 
-            void GetControlFsAndTitleId(PartitionFileSystem pfs, out IFileSystem? controlFs, out string? titleId)
+            void GetControlFsAndTitleId(IFileSystem pfs, out IFileSystem? controlFs, out string? titleId)
             {
                 if (SwitchDevice == null)
                 {
@@ -394,7 +396,7 @@ namespace LibRyujinx
                 titleId = controlNca?.Header.TitleId.ToString("x16");
             }
 
-            (Nca? mainNca, Nca? patchNca, Nca? controlNca) GetGameData(VirtualFileSystem fileSystem, PartitionFileSystem pfs, int programIndex)
+            (Nca? mainNca, Nca? patchNca, Nca? controlNca) GetGameData(VirtualFileSystem fileSystem, IFileSystem pfs, int programIndex)
             {
                 Nca? mainNca = null;
                 Nca? patchNca = null;
@@ -495,7 +497,8 @@ namespace LibRyujinx
                         if (File.Exists(updatePath))
                         {
                             FileStream file = new(updatePath, FileMode.Open, FileAccess.Read);
-                            PartitionFileSystem nsp = new(file.AsStorage());
+                            PartitionFileSystem nsp = new();
+                            nsp.Initialize(file.AsStorage()).ThrowIfFailure();
 
                             return GetGameUpdateDataFromPartition(fileSystem, nsp, titleIdBase.ToString("x16"), programIndex);
                         }
@@ -554,7 +557,8 @@ namespace LibRyujinx
             {
                 using FileStream containerFile = File.OpenRead(path);
 
-                PartitionFileSystem partitionFileSystem = new(containerFile.AsStorage());
+                PartitionFileSystem partitionFileSystem = new();
+                partitionFileSystem.Initialize(containerFile.AsStorage()).ThrowIfFailure();
 
                 SwitchDevice.VirtualFileSystem.ImportTickets(partitionFileSystem);
 
@@ -592,9 +596,9 @@ namespace LibRyujinx
                 return new List<string>();
 
             using FileStream containerFile = File.OpenRead(path);
-
-            PartitionFileSystem partitionFileSystem = new(containerFile.AsStorage());
-            bool containsDownloadableContent = false;
+            
+            PartitionFileSystem partitionFileSystem = new();
+            partitionFileSystem.Initialize(containerFile.AsStorage()).ThrowIfFailure();
 
             SwitchDevice.VirtualFileSystem.ImportTickets(partitionFileSystem);
             List<string> paths = new List<string>();
diff --git a/src/Ryujinx.HLE/Loaders/Processes/Extensions/PartitionFileSystemExtensions.cs b/src/Ryujinx.HLE/Loaders/Processes/Extensions/PartitionFileSystemExtensions.cs
index 0d2d8c13f..6a01d2f41 100644
--- a/src/Ryujinx.HLE/Loaders/Processes/Extensions/PartitionFileSystemExtensions.cs
+++ b/src/Ryujinx.HLE/Loaders/Processes/Extensions/PartitionFileSystemExtensions.cs
@@ -20,7 +20,7 @@ namespace Ryujinx.HLE.Loaders.Processes.Extensions
         private static readonly DownloadableContentJsonSerializerContext _contentSerializerContext = new(JsonHelper.GetDefaultSerializerOptions());
         private static readonly TitleUpdateMetadataJsonSerializerContext _titleSerializerContext = new(JsonHelper.GetDefaultSerializerOptions());
 
-        internal static (bool, ProcessResult) TryLoad<TMetaData, TFormat, THeader, TEntry>(this PartitionFileSystemCore<TMetaData, TFormat, THeader, TEntry> partitionFileSystem, Switch device, , Stream stream, out string errorMessage, string extension)
+        internal static (bool, ProcessResult) TryLoad<TMetaData, TFormat, THeader, TEntry>(this PartitionFileSystemCore<TMetaData, TFormat, THeader, TEntry> partitionFileSystem, Switch device, Stream stream, out string errorMessage, string extension)
             where TMetaData : PartitionFileSystemMetaCore<TFormat, THeader, TEntry>, new()
             where TFormat : IPartitionFileSystemFormat
             where THeader : unmanaged, IPartitionFileSystemHeader