summaryrefslogtreecommitdiff
path: root/Source/Core/Common/Misc.cpp
diff options
context:
space:
mode:
authordegasus <wickmarkus@web.de>2015-04-07 22:15:21 +0200
committerdegasus <wickmarkus@web.de>2015-04-07 22:42:21 +0200
commitef6bdf674f556c0ce9df383a3dc2e8bdc7483a5f (patch)
treea38461de57b18a7db4d0799b542ef69ba522def6 /Source/Core/Common/Misc.cpp
parent4796dc80bfa3b6431032492d88322ebc11beec32 (diff)
Common: Remove TLS usage in GetLastErrorMsg
Just return std::string as this code isn't performance critical.
Diffstat (limited to 'Source/Core/Common/Misc.cpp')
-rw-r--r--Source/Core/Common/Misc.cpp18
1 files changed, 5 insertions, 13 deletions
diff --git a/Source/Core/Common/Misc.cpp b/Source/Core/Common/Misc.cpp
index f831479845..6df96b4045 100644
--- a/Source/Core/Common/Misc.cpp
+++ b/Source/Core/Common/Misc.cpp
@@ -8,31 +8,23 @@
#include "Common/CommonFuncs.h"
-// Neither Android nor OS X support TLS
-#if defined(__APPLE__) || (ANDROID && __clang__)
-#define __thread
-#endif
-
// 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;
+ const size_t buff_size = 256;
+ 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)
if (strerror_r(errno, err_str, buff_size))
- return nullptr;
+ return "";
#endif
- return err_str;
+ return std::string(err_str);
}