diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/common_funcs.h | 42 | ||||
-rw-r--r-- | src/common/file_util.cpp | 2 | ||||
-rw-r--r-- | src/common/file_util.h | 2 | ||||
-rw-r--r-- | src/common/misc.cpp | 16 | ||||
-rw-r--r-- | src/common/string_util.cpp | 12 | ||||
-rw-r--r-- | src/common/string_util.h | 3 |
6 files changed, 10 insertions, 67 deletions
diff --git a/src/common/common_funcs.h b/src/common/common_funcs.h index 995938d0b..93f1c0044 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 @@ -36,40 +38,6 @@ #define Crash() exit(1) #endif -// GCC 4.8 defines all the rotate functions now -// Small issue with GCC's lrotl/lrotr intrinsics is they are still 32bit while we require 64bit -#ifdef _rotl -#define rotl _rotl -#else -inline u32 rotl(u32 x, int shift) { - shift &= 31; - if (!shift) - return x; - return (x << shift) | (x >> (32 - shift)); -} -#endif - -#ifdef _rotr -#define rotr _rotr -#else -inline u32 rotr(u32 x, int shift) { - shift &= 31; - if (!shift) - return x; - return (x >> shift) | (x << (32 - shift)); -} -#endif - -inline u64 _rotl64(u64 x, unsigned int shift) { - unsigned int n = shift % 64; - return (x << n) | (x >> (64 - n)); -} - -inline u64 _rotr64(u64 x, unsigned int shift) { - unsigned int n = shift % 64; - return (x >> n) | (x << (64 - n)); -} - #else // _MSC_VER // Locale Cross-Compatibility @@ -80,17 +48,13 @@ __declspec(dllimport) void __stdcall DebugBreak(void); } #define Crash() DebugBreak() -// cstdlib provides these on MSVC -#define rotr _rotr -#define rotl _rotl - #endif // _MSC_VER ndef // 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. -const char* GetLastErrorMsg(); +std::string GetLastErrorMsg(); namespace Common { diff --git a/src/common/file_util.cpp b/src/common/file_util.cpp index bf955386c..c882ab39f 100644 --- a/src/common/file_util.cpp +++ b/src/common/file_util.cpp @@ -592,7 +592,7 @@ std::string GetBundleDirectory() { #endif #ifdef _WIN32 -std::string& GetExeDirectory() { +const std::string& GetExeDirectory() { static std::string exe_path; if (exe_path.empty()) { wchar_t wchar_exe_path[2048]; diff --git a/src/common/file_util.h b/src/common/file_util.h index 026c84d94..1f38b1560 100644 --- a/src/common/file_util.h +++ b/src/common/file_util.h @@ -133,7 +133,7 @@ std::string GetBundleDirectory(); #endif #ifdef _WIN32 -std::string& GetExeDirectory(); +const std::string& GetExeDirectory(); std::string AppDataRoamingDirectory(); #endif 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); } diff --git a/src/common/string_util.cpp b/src/common/string_util.cpp index 0027888c7..f3ad3d68a 100644 --- a/src/common/string_util.cpp +++ b/src/common/string_util.cpp @@ -34,18 +34,6 @@ std::string ToUpper(std::string str) { return str; } -// faster than sscanf -bool AsciiToHex(const char* _szValue, u32& result) { - char* endptr = nullptr; - const u32 value = strtoul(_szValue, &endptr, 16); - - if (!endptr || *endptr) - return false; - - result = value; - return true; -} - // For Debugging. Read out an u8 array. std::string ArrayToString(const u8* data, size_t size, int line_len, bool spaces) { std::ostringstream oss; diff --git a/src/common/string_util.h b/src/common/string_util.h index 1f5a383cb..daa071f83 100644 --- a/src/common/string_util.h +++ b/src/common/string_util.h @@ -57,9 +57,6 @@ static bool TryParse(const std::string& str, N* const output) { return false; } -// TODO: kill this -bool AsciiToHex(const char* _szValue, u32& result); - std::string TabsToSpaces(int tab_size, const std::string& in); void SplitString(const std::string& str, char delim, std::vector<std::string>& output); |