summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2018-08-11 02:47:25 +0200
committerZach Hilman <zachhilman@gmail.com>2018-08-12 04:50:48 +0200
commit62e859c6c7ee3baed499d34e928fce17b8f8be9e (patch)
treea52fe5006411708181ccb0ec92000c8702b552bf
parentqt: Use custom RawCopy with progress bar for installs (diff)
downloadyuzu-62e859c6c7ee3baed499d34e928fce17b8f8be9e.tar
yuzu-62e859c6c7ee3baed499d34e928fce17b8f8be9e.tar.gz
yuzu-62e859c6c7ee3baed499d34e928fce17b8f8be9e.tar.bz2
yuzu-62e859c6c7ee3baed499d34e928fce17b8f8be9e.tar.lz
yuzu-62e859c6c7ee3baed499d34e928fce17b8f8be9e.tar.xz
yuzu-62e859c6c7ee3baed499d34e928fce17b8f8be9e.tar.zst
yuzu-62e859c6c7ee3baed499d34e928fce17b8f8be9e.zip
-rw-r--r--src/core/file_sys/bis_factory.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/core/file_sys/bis_factory.cpp b/src/core/file_sys/bis_factory.cpp
index 7d0de733b..ae4e33800 100644
--- a/src/core/file_sys/bis_factory.cpp
+++ b/src/core/file_sys/bis_factory.cpp
@@ -6,12 +6,19 @@
namespace FileSys {
+static VirtualDir GetOrCreateDirectory(const VirtualDir& dir, std::string_view path) {
+ const auto res = dir->GetDirectoryRelative(path);
+ if (res == nullptr)
+ return dir->CreateDirectoryRelative(path);
+ return res;
+}
+
BISFactory::BISFactory(VirtualDir nand_root_)
: nand_root(std::move(nand_root_)),
sysnand_cache(std::make_shared<RegisteredCache>(
- nand_root->GetDirectoryRelative("/system/Contents/registered"))),
+ GetOrCreateDirectory(nand_root, "/system/Contents/registered"))),
usrnand_cache(std::make_shared<RegisteredCache>(
- nand_root->GetDirectoryRelative("/user/Contents/registered"))) {}
+ GetOrCreateDirectory(nand_root, "/user/Contents/registered"))) {}
std::shared_ptr<RegisteredCache> BISFactory::GetSystemNANDContents() const {
return sysnand_cache;