diff options
Diffstat (limited to 'EASTL/source')
-rw-r--r-- | EASTL/source/assert.cpp | 8 | ||||
-rw-r--r-- | EASTL/source/numeric_limits.cpp | 32 | ||||
-rw-r--r-- | EASTL/source/thread_support.cpp | 6 |
3 files changed, 40 insertions, 6 deletions
diff --git a/EASTL/source/assert.cpp b/EASTL/source/assert.cpp index a4734af..63b444a 100644 --- a/EASTL/source/assert.cpp +++ b/EASTL/source/assert.cpp @@ -7,7 +7,9 @@ #include <EASTL/string.h> #include <EABase/eabase.h> -#if defined(EA_PLATFORM_MICROSOFT) +#if defined(EA_PLATFORM_WINDOWS_KERNEL) + #include <Wdm.h> +#elif defined(EA_PLATFORM_MICROSOFT) EA_DISABLE_ALL_VC_WARNINGS(); #if defined(EA_COMPILER_MSVC) #include <crtdbg.h> @@ -66,7 +68,9 @@ namespace eastl EASTL_API void AssertionFailureFunctionDefault(const char* pExpression, void* /*pContext*/) { #if EASTL_ASSERT_ENABLED - #if defined(EA_PLATFORM_MICROSOFT) + #if defined(EA_PLATFORM_WINDOWS_KERNEL) + DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, "%s", pExpression); + #elif defined(EA_PLATFORM_MICROSOFT) printf("%s\n", pExpression); // Write the message to stdout if( ::IsDebuggerPresent()) { diff --git a/EASTL/source/numeric_limits.cpp b/EASTL/source/numeric_limits.cpp index 7b7bf2f..90b1d75 100644 --- a/EASTL/source/numeric_limits.cpp +++ b/EASTL/source/numeric_limits.cpp @@ -39,7 +39,7 @@ #endif -#if defined(_MSC_VER) +#if defined(_MSC_VER) && !defined(EA_COMPILER_CLANG_CL) // VC++ has a long-standing bug: it fails to allow the definition of static const member variables // outside the declaration within the class. The C++ Standard actually requires that they be defined // and some other compilers fail to link if they aren't. So we simply don't define the members for VC++. @@ -197,6 +197,32 @@ EA_CONSTEXPR_OR_CONST bool numeric_limits<wchar_t>::has_denorm_loss; EA_CONSTEXPR_OR_CONST bool numeric_limits<wchar_t>::is_iec559; + // char8_t + #if defined(EA_CHAR8_UNIQUE) && EA_CHAR8_UNIQUE // If char8_t is a true unique type (as called for by the C++20 Standard) + EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_specialized; + EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::digits; + EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::digits10; + EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_signed; + EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_integer; + EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_exact; + EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::radix; + EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::min_exponent; + EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::min_exponent10; + EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::max_exponent; + EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::max_exponent10; + EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_bounded; + EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_modulo; + EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::traps; + EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::tinyness_before; + EA_CONSTEXPR_OR_CONST float_round_style numeric_limits<char8_t>::round_style; + EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::has_infinity; + EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::has_quiet_NaN; + EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::has_signaling_NaN; + EA_CONSTEXPR_OR_CONST float_denorm_style numeric_limits<char8_t>::has_denorm; + EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::has_denorm_loss; + EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_iec559; + #endif + // char16_t #if EA_CHAR16_NATIVE // If char16_t is a true unique type (as called for by the C++11 Standard)... EA_CONSTEXPR_OR_CONST bool numeric_limits<char16_t>::is_specialized; @@ -442,7 +468,7 @@ EA_CONSTEXPR_OR_CONST bool numeric_limits<long long>::is_iec559; // __uint128_t - #if (EA_COMPILER_INTMAX_SIZE >= 16) && (defined(EA_COMPILER_GNUC) || defined(EA_COMPILER_CLANG)) // If __int128_t/__uint128_t is supported... + #if (EA_COMPILER_INTMAX_SIZE >= 16) && (defined(EA_COMPILER_GNUC) || defined(__clang__)) // If __int128_t/__uint128_t is supported... EA_CONSTEXPR_OR_CONST bool numeric_limits<__uint128_t>::is_specialized; EA_CONSTEXPR_OR_CONST int numeric_limits<__uint128_t>::digits; EA_CONSTEXPR_OR_CONST int numeric_limits<__uint128_t>::digits10; @@ -468,7 +494,7 @@ #endif // __int128_t - #if (EA_COMPILER_INTMAX_SIZE >= 16) && (defined(EA_COMPILER_GNUC) || defined(EA_COMPILER_CLANG)) // If __int128_t/__uint128_t is supported... + #if (EA_COMPILER_INTMAX_SIZE >= 16) && (defined(EA_COMPILER_GNUC) || defined(__clang__)) // If __int128_t/__uint128_t is supported... EA_CONSTEXPR_OR_CONST bool numeric_limits<__int128_t>::is_specialized; EA_CONSTEXPR_OR_CONST int numeric_limits<__int128_t>::digits; EA_CONSTEXPR_OR_CONST int numeric_limits<__int128_t>::digits10; diff --git a/EASTL/source/thread_support.cpp b/EASTL/source/thread_support.cpp index 3b8550e..693dd24 100644 --- a/EASTL/source/thread_support.cpp +++ b/EASTL/source/thread_support.cpp @@ -53,7 +53,11 @@ namespace eastl pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); - pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_PRIVATE); + + #if defined(EA_HAVE_pthread_mutexattr_setpshared_DECL) + pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_PRIVATE); + #endif + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); pthread_mutex_init(&mMutex, &attr); pthread_mutexattr_destroy(&attr); |