diff options
| author | 2016-11-17 12:29:57 +0100 | |
|---|---|---|
| committer | 2016-11-19 15:50:16 +0100 | |
| commit | 3d75e3cd07a8c577d74aa1c7017c7ee5019e632d (patch) | |
| tree | 99e6ce642a0406deaa87a4d4a283964a5ff9c10b /src/common/file_util.cpp | |
| parent | Win32 move default user folder location to AppData (diff) | |
| download | yuzu-3d75e3cd07a8c577d74aa1c7017c7ee5019e632d.tar.gz yuzu-3d75e3cd07a8c577d74aa1c7017c7ee5019e632d.tar.xz yuzu-3d75e3cd07a8c577d74aa1c7017c7ee5019e632d.zip | |
Return by value and other fixes
Diffstat (limited to 'src/common/file_util.cpp')
| -rw-r--r-- | src/common/file_util.cpp | 20 |
1 files changed, 7 insertions, 13 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() { | |||
| 598 | return exe_path; | 598 | return exe_path; |
| 599 | } | 599 | } |
| 600 | 600 | ||
| 601 | std::string& AppDataLocalDirectory() { | 601 | std::string AppDataLocalDirectory() { |
| 602 | // Windows Vista or later only | 602 | PWSTR pw_local_path = nullptr; |
| 603 | static std::string local_path; | 603 | // Only supported by Windows Vista or later |
| 604 | if (local_path.empty()) { | 604 | SHGetKnownFolderPath(FOLDERID_LocalAppData, 0, nullptr, &pw_local_path); |
| 605 | PWSTR pw_local_path = 0; | 605 | std::string local_path = Common::UTF16ToUTF8(pw_local_path); |
| 606 | wchar_t* wchar_local_path; | 606 | CoTaskMemFree(pw_local_path); |
| 607 | SHGetKnownFolderPath(FOLDERID_LocalAppData, 0, NULL, &pw_local_path); | ||
| 608 | wchar_local_path = pw_local_path; | ||
| 609 | local_path = Common::UTF16ToUTF8(wchar_local_path); | ||
| 610 | // Freeing memory | ||
| 611 | CoTaskMemFree(static_cast<void*>(pw_local_path)); | ||
| 612 | } | ||
| 613 | return local_path; | 607 | return local_path; |
| 614 | } | 608 | } |
| 615 | #else | 609 | #else |
| @@ -691,7 +685,7 @@ const std::string& GetUserPath(const unsigned int DirIDX, const std::string& new | |||
| 691 | paths[D_USER_IDX] = GetExeDirectory() + DIR_SEP USERDATA_DIR DIR_SEP; | 685 | paths[D_USER_IDX] = GetExeDirectory() + DIR_SEP USERDATA_DIR DIR_SEP; |
| 692 | if (!FileUtil::IsDirectory(paths[D_USER_IDX])) { | 686 | if (!FileUtil::IsDirectory(paths[D_USER_IDX])) { |
| 693 | paths[D_USER_IDX] = | 687 | paths[D_USER_IDX] = |
| 694 | AppDataLocalDirectory() + DIR_SEP + EMU_DATA_DIR DIR_SEP USERDATA_DIR DIR_SEP; | 688 | AppDataLocalDirectory() + DIR_SEP EMU_DATA_DIR DIR_SEP USERDATA_DIR DIR_SEP; |
| 695 | } | 689 | } |
| 696 | 690 | ||
| 697 | paths[D_CONFIG_IDX] = paths[D_USER_IDX] + CONFIG_DIR DIR_SEP; | 691 | paths[D_CONFIG_IDX] = paths[D_USER_IDX] + CONFIG_DIR DIR_SEP; |