From 1d8da1833429acd4a9cbea7597c0699c2e3c80bf Mon Sep 17 00:00:00 2001
From: Thog <me@thog.eu>
Date: Fri, 24 Jan 2020 17:01:21 +0100
Subject: Make VirtualFileSystem only instanciable once (#901)

This fix a regression caused by #888 on temporary saves for SNES Online.
(and probably other games)
---
 Ryujinx.HLE/FileSystem/VirtualFileSystem.cs | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

(limited to 'Ryujinx.HLE/FileSystem/VirtualFileSystem.cs')

diff --git a/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs b/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs
index 070ec3bc..884f4197 100644
--- a/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs
+++ b/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs
@@ -20,12 +20,14 @@ namespace Ryujinx.HLE.FileSystem
         public static string SystemNandPath = Path.Combine(NandPath, "system");
         public static string UserNandPath   = Path.Combine(NandPath, "user");
 
+        private static bool _isInitialized = false;
+
         public Keyset           KeySet   { get; private set; }
         public FileSystemServer FsServer { get; private set; }
         public FileSystemClient FsClient { get; private set; }
         public EmulatedGameCard GameCard { get; private set; }
 
-        public VirtualFileSystem()
+        private VirtualFileSystem()
         {
             Reload();
         }
@@ -272,5 +274,17 @@ namespace Ryujinx.HLE.FileSystem
                 Unload();
             }
         }
+
+        public static VirtualFileSystem CreateInstance()
+        {
+            if (_isInitialized)
+            {
+                throw new InvalidOperationException($"VirtualFileSystem can only be instanciated once!");
+            }
+
+            _isInitialized = true;
+
+            return new VirtualFileSystem();
+        }
     }
 }
\ No newline at end of file
-- 
cgit v1.2.3-70-g09d2