summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/common/file_util.cpp20
-rw-r--r--src/common/file_util.h2
2 files changed, 8 insertions, 14 deletions
diff --git a/src/common/file_util.cpp b/src/common/file_util.cpp
index 8a8ff3092..a1c12cbce 100644
--- a/src/common/file_util.cpp
+++ b/src/common/file_util.cpp
@@ -598,18 +598,12 @@ std::string& GetExeDirectory() {
return exe_path;
}
-std::string& AppDataLocalDirectory() {
- // Windows Vista or later only
- static std::string local_path;
- if (local_path.empty()) {
- PWSTR pw_local_path = 0;
- wchar_t* wchar_local_path;
- SHGetKnownFolderPath(FOLDERID_LocalAppData, 0, NULL, &pw_local_path);
- wchar_local_path = pw_local_path;
- local_path = Common::UTF16ToUTF8(wchar_local_path);
- // Freeing memory
- CoTaskMemFree(static_cast<void*>(pw_local_path));
- }
+std::string AppDataLocalDirectory() {
+ PWSTR pw_local_path = nullptr;
+ // Only supported by Windows Vista or later
+ SHGetKnownFolderPath(FOLDERID_LocalAppData, 0, nullptr, &pw_local_path);
+ std::string local_path = Common::UTF16ToUTF8(pw_local_path);
+ CoTaskMemFree(pw_local_path);
return local_path;
}
#else
@@ -691,7 +685,7 @@ const std::string& GetUserPath(const unsigned int DirIDX, const std::string& new
paths[D_USER_IDX] = GetExeDirectory() + DIR_SEP USERDATA_DIR DIR_SEP;
if (!FileUtil::IsDirectory(paths[D_USER_IDX])) {
paths[D_USER_IDX] =
- AppDataLocalDirectory() + DIR_SEP + EMU_DATA_DIR DIR_SEP USERDATA_DIR DIR_SEP;
+ AppDataLocalDirectory() + DIR_SEP EMU_DATA_DIR DIR_SEP USERDATA_DIR DIR_SEP;
}
paths[D_CONFIG_IDX] = paths[D_USER_IDX] + CONFIG_DIR DIR_SEP;
diff --git a/src/common/file_util.h b/src/common/file_util.h
index 03cb222fe..4c5ab676e 100644
--- a/src/common/file_util.h
+++ b/src/common/file_util.h
@@ -154,7 +154,7 @@ std::string GetBundleDirectory();
#ifdef _WIN32
std::string& GetExeDirectory();
-std::string& AppDataLocalDirectory();
+std::string AppDataLocalDirectory();
#endif
size_t WriteStringToFile(bool text_file, const std::string& str, const char* filename);