Yet another small improvements to library initialization code.

This commit is contained in:
LoRd_MuldeR 2019-05-11 21:04:53 +02:00
parent afa83d8645
commit 9a898f5d49
2 changed files with 5 additions and 11 deletions

View File

@ -41,10 +41,6 @@ template<typename K, typename V> class QHash;
//Interface version
#define MUTILS_INTERFACE 2
//Build key
#define MUTILS_BUILD_KEY_HELPER(X,Y) X##" "##Y
#define MUTILS_BUILD_KEY MUTILS_BUILD_KEY_HELPER(__DATE__, __TIME__)
//MUtils API
#ifdef _MSC_VER
# ifdef MUTILS_DLL_EXPORT
@ -370,8 +366,8 @@ namespace MUtils
//Internal (do *not* call directly!)
namespace Internal
{
MUTILS_API int MUTILS_INITIALIZER(const unsigned int interfaceId, const bool debugFlag, const char *const buildKey);
static const int s_initializedFlag = MUTILS_INITIALIZER(MUTILS_INTERFACE, MUTILS_DEBUG, MUTILS_BUILD_KEY);
MUTILS_API unsigned int MUTILS_INITIALIZER(const unsigned int interfaceId);
static const unsigned int init_flag = MUTILS_INITIALIZER(MUTILS_INTERFACE);
}
}

View File

@ -905,16 +905,14 @@ MUtils::fp_parts_t MUtils::break_fp(const double value)
// INITIALIZER
///////////////////////////////////////////////////////////////////////////////
int MUtils::Internal::MUTILS_INITIALIZER(const unsigned int interfaceId, const bool debugFlag, const char *const buildKey)
unsigned int MUtils::Internal::MUTILS_INITIALIZER(const unsigned int interfaceId)
{
#if (!MUTILS_DEBUG)
if((interfaceId != static_cast<unsigned int>(MUTILS_INTERFACE)) || (debugFlag != static_cast<bool>(MUTILS_DEBUG)) || strncmp(buildKey, MUTILS_BUILD_KEY, 14))
if(interfaceId != ((unsigned int)MUTILS_INTERFACE))
{
OS::system_message_err(L"MUtils", L"ERROR: MUtils library initialization has failed!");
for(;;) _exit((int)0xC0000142);
}
#endif //MUTILS_DEBUG
volatile int _result = MUTILS_INTERFACE;
volatile unsigned int _result = MUTILS_INTERFACE;
return _result;
}