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.
This commit is contained in:
parent
997f43bdf8
commit
40b76cdcd2
2 changed files with 4 additions and 3 deletions
|
@ -525,7 +525,7 @@ void CopyDir(const std::string& source_path, const std::string& dest_path) {
|
|||
#endif
|
||||
}
|
||||
|
||||
std::string GetCurrentDir() {
|
||||
std::optional<std::string> GetCurrentDir() {
|
||||
// Get the current working directory (getcwd uses malloc)
|
||||
#ifdef _WIN32
|
||||
wchar_t* dir;
|
||||
|
@ -535,7 +535,7 @@ std::string GetCurrentDir() {
|
|||
if (!(dir = getcwd(nullptr, 0))) {
|
||||
#endif
|
||||
LOG_ERROR(Common_Filesystem, "GetCurrentDirectory failed: {}", GetLastErrorMsg());
|
||||
return nullptr;
|
||||
return {};
|
||||
}
|
||||
#ifdef _WIN32
|
||||
std::string strDir = Common::UTF16ToUTF8(dir);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue