118 119 120 //---------------------------------------------------------------------------------------------------- 121 // Non-standard stdlib-like stuff: 122 inline int strcasecmp(const char *s1, const char *s2) { return _stricmp(s1,s2); } 123 inline int strncasecmp(const char *s1, const char *s2, size_t n) { 124 return _strnicmp(s1,s2,n); 125 } 126 127 128 //---------------------------------------------------------------------------------------------------- 129 // Debugging 130 131 #if _WIN64 132 extern "C" void breakpoint(); 133 #define BREAKPOINT ::breakpoint() 134 #else 135 #define BREAKPOINT __asm { int 3 } 136 #endif 137 138 //---------------------------------------------------------------------------------------------------- 139 // Checking for nanness 140 141 inline int g_isnan(jfloat f) { return _isnan(f); } 142 inline int g_isnan(jdouble f) { return _isnan(f); } 143 144 //---------------------------------------------------------------------------------------------------- 145 // Checking for finiteness 146 147 inline int g_isfinite(jfloat f) { return _finite(f); } 148 inline int g_isfinite(jdouble f) { return _finite(f); } 149 150 //---------------------------------------------------------------------------------------------------- 151 // Constant for jlong (specifying an long long constant is C++ compiler specific) 152 153 // Build a 64bit integer constant on with Visual C++ 154 #define CONST64(x) (x ## i64) 155 #define UCONST64(x) (x ## ui64) 156 157 const jlong min_jlong = (jlong)UCONST64(0x8000000000000000); | 118 119 120 //---------------------------------------------------------------------------------------------------- 121 // Non-standard stdlib-like stuff: 122 inline int strcasecmp(const char *s1, const char *s2) { return _stricmp(s1,s2); } 123 inline int strncasecmp(const char *s1, const char *s2, size_t n) { 124 return _strnicmp(s1,s2,n); 125 } 126 127 128 //---------------------------------------------------------------------------------------------------- 129 // Debugging 130 131 #if _WIN64 132 extern "C" void breakpoint(); 133 #define BREAKPOINT ::breakpoint() 134 #else 135 #define BREAKPOINT __asm { int 3 } 136 #endif 137 138 #define NORETURN_ATTRIBUTE(function) __declspec(noreturn) function 139 140 //---------------------------------------------------------------------------------------------------- 141 // Checking for nanness 142 143 inline int g_isnan(jfloat f) { return _isnan(f); } 144 inline int g_isnan(jdouble f) { return _isnan(f); } 145 146 //---------------------------------------------------------------------------------------------------- 147 // Checking for finiteness 148 149 inline int g_isfinite(jfloat f) { return _finite(f); } 150 inline int g_isfinite(jdouble f) { return _finite(f); } 151 152 //---------------------------------------------------------------------------------------------------- 153 // Constant for jlong (specifying an long long constant is C++ compiler specific) 154 155 // Build a 64bit integer constant on with Visual C++ 156 #define CONST64(x) (x ## i64) 157 #define UCONST64(x) (x ## ui64) 158 159 const jlong min_jlong = (jlong)UCONST64(0x8000000000000000); |