diff --git a/src/core/file_sys/fs.cpp b/src/core/file_sys/fs.cpp index cba95fe37..96a04ee5e 100644 --- a/src/core/file_sys/fs.cpp +++ b/src/core/file_sys/fs.cpp @@ -55,7 +55,7 @@ std::filesystem::path MntPoints::GetHostPath(std::string_view path, bool* is_rea if (path.length() > 255) return ""; - const MntPair* mount = GetMount(corrected_path); + const std::optional mount = GetMount(corrected_path); if (!mount) { return ""; } diff --git a/src/core/file_sys/fs.h b/src/core/file_sys/fs.h index 599d9e823..6fc6c570f 100644 --- a/src/core/file_sys/fs.h +++ b/src/core/file_sys/fs.h @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -58,14 +59,17 @@ public: return it == m_mnt_pairs.end() ? nullptr : &*it; } - const MntPair* GetMount(const std::string& guest_path) { + const std::optional GetMount(const std::string& guest_path) { std::scoped_lock lock{m_mutex}; const auto it = std::ranges::find_if(m_mnt_pairs, [&](const auto& mount) { // When doing starts-with check, add a trailing slash to make sure we don't match // against only part of the mount path. return guest_path == mount.mount || guest_path.starts_with(mount.mount + "/"); }); - return it == m_mnt_pairs.end() ? nullptr : &*it; + if (it == m_mnt_pairs.end()) { + return std::nullopt; + } + return *it; } private: diff --git a/src/core/libraries/save_data/save_instance.cpp b/src/core/libraries/save_data/save_instance.cpp index bc6bbfd72..baeec5d2c 100644 --- a/src/core/libraries/save_data/save_instance.cpp +++ b/src/core/libraries/save_data/save_instance.cpp @@ -105,7 +105,7 @@ SaveInstance::SaveInstance(int slot_num, Libraries::UserService::OrbisUserServic mount_point = "/savedata" + std::to_string(slot_num); this->exists = fs::exists(param_sfo_path); - this->mounted = g_mnt->GetMount(mount_point) != nullptr; + this->mounted = g_mnt->GetMount(mount_point) != std::nullopt; } SaveInstance::~SaveInstance() {