diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index fa6b7a7af..f018a36ed 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -110,7 +110,6 @@ add_library(citra_common STATIC microprofile.cpp microprofile.h microprofileui.h - misc.cpp param_package.cpp param_package.h polyfill_thread.h diff --git a/src/common/common_funcs.h b/src/common/common_funcs.h index 02b117939..8f109a8d3 100644 --- a/src/common/common_funcs.h +++ b/src/common/common_funcs.h @@ -4,7 +4,6 @@ #pragma once -#include #include "common/common_types.h" /// Textually concatenates two tokens. The double-expansion is required by the C preprocessor. @@ -103,9 +102,3 @@ __declspec(dllimport) void __stdcall DebugBreak(void); using T = std::underlying_type_t; \ return static_cast(key) == 0; \ } - -// Generic function to get last error message. -// Call directly after the command or use the error num. -// This function might change the error code. -// Defined in Misc.cpp. -[[nodiscard]] std::string GetLastErrorMsg(); diff --git a/src/common/file_util.cpp b/src/common/file_util.cpp index 4b302a893..5b0ba817a 100644 --- a/src/common/file_util.cpp +++ b/src/common/file_util.cpp @@ -14,6 +14,7 @@ #include "common/assert.h" #include "common/common_funcs.h" #include "common/common_paths.h" +#include "common/error.h" #include "common/file_util.h" #include "common/logging/log.h" #include "common/scope_exit.h" @@ -90,6 +91,8 @@ // REMEMBER: strdup considered harmful! namespace FileUtil { +using Common::GetLastErrorMsg; + // Remove any ending forward slashes from directory paths // Modifies argument. static void StripTailDirSlashes(std::string& fname) { diff --git a/src/common/misc.cpp b/src/common/misc.cpp deleted file mode 100644 index 1a95e29be..000000000 --- a/src/common/misc.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2013 Dolphin Emulator Project / 2014 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include -#ifdef _WIN32 -#include -#else -#include -#include -#endif - -#include "common/common_funcs.h" - -// Generic function to get last error message. -// Call directly after the command or use the error num. -// This function might change the error code. -std::string GetLastErrorMsg() { -#ifdef _WIN32 - LPSTR err_str; - - DWORD res = FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_IGNORE_INSERTS, - nullptr, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - reinterpret_cast(&err_str), 1, nullptr); - if (!res) { - return "(FormatMessageA failed to format error)"; - } - std::string ret(err_str); - LocalFree(err_str); - return ret; -#else - char err_str[255]; -#if (defined(__GLIBC__) || __ANDROID_API__ >= 23) && \ - (_GNU_SOURCE || (_POSIX_C_SOURCE < 200112L && _XOPEN_SOURCE < 600)) - // Thread safe (GNU-specific) - const char* str = strerror_r(errno, err_str, sizeof(err_str)); - return std::string(str); -#else - // Thread safe (XSI-compliant) - int second_err = strerror_r(errno, err_str, sizeof(err_str)); - if (second_err != 0) { - return "(strerror_r failed to format error)"; - } - return std::string(err_str); -#endif // GLIBC etc. -#endif // _WIN32 -} diff --git a/src/core/file_sys/archive_sdmc.cpp b/src/core/file_sys/archive_sdmc.cpp index ce69cf0ce..994108a68 100644 --- a/src/core/file_sys/archive_sdmc.cpp +++ b/src/core/file_sys/archive_sdmc.cpp @@ -5,6 +5,7 @@ #include #include #include "common/archives.h" +#include "common/error.h" #include "common/file_util.h" #include "common/logging/log.h" #include "common/settings.h" @@ -103,7 +104,7 @@ ResultVal> SDMCArchive::OpenFileBase(const Path& pa FileUtil::IOFile file(full_path, mode.write_flag ? "r+b" : "rb"); if (!file.IsOpen()) { - LOG_CRITICAL(Service_FS, "Error opening {}: {}", full_path, GetLastErrorMsg()); + LOG_CRITICAL(Service_FS, "Error opening {}: {}", full_path, Common::GetLastErrorMsg()); return ERROR_NOT_FOUND; }