diff options
author | bunnei <bunneidev@gmail.com> | 2018-07-19 19:00:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-19 19:00:48 +0200 |
commit | bbc31ba6afdd56194d36fc4c99e0e07f7499fe8a (patch) | |
tree | bc1017dd2ba9d2b7e540aeb13a4af1368b2bde86 /src | |
parent | Merge pull request #708 from lioncash/xbyak (diff) | |
parent | common/misc: Deduplicate code in GetLastErrorMsg() (diff) | |
download | yuzu-bbc31ba6afdd56194d36fc4c99e0e07f7499fe8a.tar yuzu-bbc31ba6afdd56194d36fc4c99e0e07f7499fe8a.tar.gz yuzu-bbc31ba6afdd56194d36fc4c99e0e07f7499fe8a.tar.bz2 yuzu-bbc31ba6afdd56194d36fc4c99e0e07f7499fe8a.tar.lz yuzu-bbc31ba6afdd56194d36fc4c99e0e07f7499fe8a.tar.xz yuzu-bbc31ba6afdd56194d36fc4c99e0e07f7499fe8a.tar.zst yuzu-bbc31ba6afdd56194d36fc4c99e0e07f7499fe8a.zip |
Diffstat (limited to '')
-rw-r--r-- | src/common/common_funcs.h | 4 | ||||
-rw-r--r-- | src/common/misc.cpp | 16 |
2 files changed, 8 insertions, 12 deletions
diff --git a/src/common/common_funcs.h b/src/common/common_funcs.h index 995938d0b..042c2c2aa 100644 --- a/src/common/common_funcs.h +++ b/src/common/common_funcs.h @@ -4,6 +4,8 @@ #pragma once +#include <string> + #if !defined(ARCHITECTURE_x86_64) && !defined(ARCHITECTURE_ARM) #include <cstdlib> // for exit #endif @@ -90,7 +92,7 @@ __declspec(dllimport) void __stdcall DebugBreak(void); // Call directly after the command or use the error num. // This function might change the error code. // Defined in Misc.cpp. -const char* GetLastErrorMsg(); +std::string GetLastErrorMsg(); namespace Common { diff --git a/src/common/misc.cpp b/src/common/misc.cpp index 7be2235b0..217a87098 100644 --- a/src/common/misc.cpp +++ b/src/common/misc.cpp @@ -4,34 +4,28 @@ #include <cstddef> #ifdef _WIN32 -#include <windows.h> +#include <Windows.h> #else #include <cerrno> #include <cstring> #endif -// Neither Android nor OS X support TLS -#if defined(__APPLE__) || (ANDROID && __clang__) -#define __thread -#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. -const char* GetLastErrorMsg() { +std::string GetLastErrorMsg() { static const size_t buff_size = 255; + char err_str[buff_size]; #ifdef _WIN32 - static __declspec(thread) char err_str[buff_size] = {}; - FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, nullptr, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), err_str, buff_size, nullptr); #else - static __thread char err_str[buff_size] = {}; - // Thread safe (XSI-compliant) strerror_r(errno, err_str, buff_size); #endif - return err_str; + return std::string(err_str, buff_size); } |