summaryrefslogtreecommitdiffstats
path: root/src/common/misc.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-10-30 08:35:40 +0100
committerGitHub <noreply@github.com>2020-10-30 08:35:40 +0100
commit8aa9ae5ba5269b0c82f771a6fcf47b2534b5faf9 (patch)
tree1eaa9ee780dab30783252f6ab68af1e8e62f3f07 /src/common/misc.cpp
parentMerge pull request #4867 from lioncash/vp9 (diff)
parentGeneral: Catch more expressions with no effect on MSVC (diff)
downloadyuzu-8aa9ae5ba5269b0c82f771a6fcf47b2534b5faf9.tar
yuzu-8aa9ae5ba5269b0c82f771a6fcf47b2534b5faf9.tar.gz
yuzu-8aa9ae5ba5269b0c82f771a6fcf47b2534b5faf9.tar.bz2
yuzu-8aa9ae5ba5269b0c82f771a6fcf47b2534b5faf9.tar.lz
yuzu-8aa9ae5ba5269b0c82f771a6fcf47b2534b5faf9.tar.xz
yuzu-8aa9ae5ba5269b0c82f771a6fcf47b2534b5faf9.tar.zst
yuzu-8aa9ae5ba5269b0c82f771a6fcf47b2534b5faf9.zip
Diffstat (limited to 'src/common/misc.cpp')
-rw-r--r--src/common/misc.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/common/misc.cpp b/src/common/misc.cpp
index 68cb86cd1..1d5393597 100644
--- a/src/common/misc.cpp
+++ b/src/common/misc.cpp
@@ -16,16 +16,23 @@
// Call directly after the command or use the error num.
// This function might change the error code.
std::string GetLastErrorMsg() {
- static const std::size_t buff_size = 255;
+ static constexpr std::size_t buff_size = 255;
char err_str[buff_size];
#ifdef _WIN32
FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, nullptr, GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), err_str, buff_size, nullptr);
+ return std::string(err_str, buff_size);
+#elif defined(__GLIBC__) && (_GNU_SOURCE || (_POSIX_C_SOURCE < 200112L && _XOPEN_SOURCE < 600))
+ // Thread safe (GNU-specific)
+ const char* str = strerror_r(errno, err_str, buff_size);
+ return std::string(str);
#else
// Thread safe (XSI-compliant)
- strerror_r(errno, err_str, buff_size);
+ const int success = strerror_r(errno, err_str, buff_size);
+ if (success != 0) {
+ return {};
+ }
+ return std::string(err_str);
#endif
-
- return std::string(err_str, buff_size);
}