summaryrefslogtreecommitdiff
path: root/src/common/file_util.h
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2019-05-23 14:24:11 -0400
committerLioncash <mathew1800@gmail.com>2019-05-23 14:24:13 -0400
commit11e9bee91d645cba69e936916394a0a03875c878 (patch)
treef27f82a7cfedb748013fa0d6f236f8dd3583d7e2 /src/common/file_util.h
parent943f6da1ac507daec404d593a331cc37c9ab64df (diff)
common/file_util: Make GetCurrentDir() return a std::optional
nullptr was being returned in the error case, which, at a glance may seem perfectly OK... until you realize that std::string has the invariant that it may not be constructed from a null pointer. This means that if this error case was ever hit, then the application would most likely crash from a thrown exception in std::string's constructor. Instead, we can change the function to return an optional value, indicating if a failure occurred.
Diffstat (limited to 'src/common/file_util.h')
-rw-r--r--src/common/file_util.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/common/file_util.h b/src/common/file_util.h
index c325f5b49..cde7ddf2d 100644
--- a/src/common/file_util.h
+++ b/src/common/file_util.h
@@ -9,6 +9,7 @@
#include <fstream>
#include <functional>
#include <limits>
+#include <optional>
#include <string>
#include <string_view>
#include <type_traits>
@@ -118,7 +119,7 @@ u64 ScanDirectoryTree(const std::string& directory, FSTEntry& parent_entry,
bool DeleteDirRecursively(const std::string& directory, unsigned int recursion = 256);
// Returns the current directory
-std::string GetCurrentDir();
+std::optional<std::string> GetCurrentDir();
// Create directory and copy contents (does not overwrite existing files)
void CopyDir(const std::string& source_path, const std::string& dest_path);