From b1a01ecfdcbb63d08be5f9dfc698b6fccdfaf73d Mon Sep 17 00:00:00 2001 From: goeiecool9999 <> Date: Wed, 7 Sep 2022 22:17:20 +0200 Subject: [PATCH] more changes. --- src/Cafe/Filesystem/FSPath.h | 2 +- src/Cafe/Filesystem/fscDeviceHostFS.cpp | 6 ++++-- src/Cafe/Filesystem/fscDeviceHostFS.h | 2 +- src/Cafe/TitleList/SaveList.cpp | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Cafe/Filesystem/FSPath.h b/src/Cafe/Filesystem/FSPath.h index 543fb8f6..58a9b773 100644 --- a/src/Cafe/Filesystem/FSPath.h +++ b/src/Cafe/Filesystem/FSPath.h @@ -12,7 +12,7 @@ class FSPath : public fs::path { template static FSPath Convert(const T& input) { - return FSPath{} / input; + return FSPath{} / FSPath{input}; } FSPath& operator/= (const FSPath & other); FSPath& operator/ (const FSPath & other); diff --git a/src/Cafe/Filesystem/fscDeviceHostFS.cpp b/src/Cafe/Filesystem/fscDeviceHostFS.cpp index aa76fc7e..8043b483 100644 --- a/src/Cafe/Filesystem/fscDeviceHostFS.cpp +++ b/src/Cafe/Filesystem/fscDeviceHostFS.cpp @@ -158,11 +158,13 @@ bool FSCVirtualFile_Host::fscDirNext(FSCDirEntry* dirEntry) return true; } -FSCVirtualFile* FSCVirtualFile_Host::OpenFile(const FSPath& path, FSC_ACCESS_FLAG accessFlags, sint32& fscStatus) +FSCVirtualFile* FSCVirtualFile_Host::OpenFile(const fs::path& rawPath, FSC_ACCESS_FLAG accessFlags, sint32& fscStatus) { if (!HAS_FLAG(accessFlags, FSC_ACCESS_FLAG::OPEN_FILE) && !HAS_FLAG(accessFlags, FSC_ACCESS_FLAG::OPEN_DIR)) cemu_assert_debug(false); // not allowed. At least one of both flags must be set + auto path = FSPath::Convert(rawPath); + // attempt to open as file if (HAS_FLAG(accessFlags, FSC_ACCESS_FLAG::OPEN_FILE)) { @@ -225,7 +227,7 @@ public: FSCVirtualFile* fscDeviceOpenByPath(std::wstring_view path, FSC_ACCESS_FLAG accessFlags, void* ctx, sint32* fscStatus) override { *fscStatus = FSC_STATUS_OK; - FSCVirtualFile* vf = FSCVirtualFile_Host::OpenFile(FSPath::Convert(path), accessFlags, *fscStatus); + FSCVirtualFile* vf = FSCVirtualFile_Host::OpenFile(path, accessFlags, *fscStatus); cemu_assert_debug((bool)vf == (*fscStatus == FSC_STATUS_OK)); return vf; } diff --git a/src/Cafe/Filesystem/fscDeviceHostFS.h b/src/Cafe/Filesystem/fscDeviceHostFS.h index b1c14765..e5486f5d 100644 --- a/src/Cafe/Filesystem/fscDeviceHostFS.h +++ b/src/Cafe/Filesystem/fscDeviceHostFS.h @@ -4,7 +4,7 @@ class FSCVirtualFile_Host : public FSCVirtualFile { public: - static FSCVirtualFile* OpenFile(const FSPath& path, FSC_ACCESS_FLAG accessFlags, sint32& fscStatus); + static FSCVirtualFile* OpenFile(const fs::path& path, FSC_ACCESS_FLAG accessFlags, sint32& fscStatus); ~FSCVirtualFile_Host() override; sint32 fscGetType() override; diff --git a/src/Cafe/TitleList/SaveList.cpp b/src/Cafe/TitleList/SaveList.cpp index 224d47b0..4d4ff9f8 100644 --- a/src/Cafe/TitleList/SaveList.cpp +++ b/src/Cafe/TitleList/SaveList.cpp @@ -2,7 +2,7 @@ #include std::mutex sSLMutex; -fs::path sSLMLCPath; +FSPath sSLMLCPath; std::vector sSLList; @@ -59,7 +59,7 @@ void CafeSaveList::RefreshThreadWorker() sSLList.clear(); sSLMutex.lock(); - fs::path mlcPath = sSLMLCPath; + FSPath mlcPath = sSLMLCPath; sSLMutex.unlock(); std::error_code ec; for (auto it_titleHigh : fs::directory_iterator(mlcPath / "usr/save", ec))