Add lj_num2u64 for number to uint64_t conversion.
This commit is contained in:
11
src/lj_obj.h
11
src/lj_obj.h
@@ -763,6 +763,17 @@ static LJ_AINLINE int32_t lj_num2bit(lua_Number n)
|
||||
#define lj_num2int(n) ((int32_t)(n))
|
||||
#endif
|
||||
|
||||
static LJ_AINLINE uint64_t lj_num2u64(lua_Number n)
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
if (n >= 9223372036854775808.0) /* They think it's a feature. */
|
||||
return (uint64_t)(int64_t)(n - 9223372036854775808.0) +
|
||||
U64x(80000000,00000000);
|
||||
else
|
||||
#endif
|
||||
return (uint64_t)n;
|
||||
}
|
||||
|
||||
/* -- Miscellaneous object handling --------------------------------------- */
|
||||
|
||||
/* Names and maps for internal and external object tags. */
|
||||
|
||||
Reference in New Issue
Block a user