Add lj_num2u64 for number to uint64_t conversion.

This commit is contained in:
Mike Pall
2010-12-31 00:46:29 +01:00
parent 4668b229de
commit dc4b82c33d
2 changed files with 12 additions and 6 deletions

View File

@@ -200,13 +200,8 @@ void lj_cconv_ct_ct(CTState *cts, CType *d, CType *s,
} else if (dsize == 8) {
if (!(dinfo & CTF_UNSIGNED))
*(int64_t *)dp = (int64_t)n;
#ifdef _MSC_VER
else if (n >= 9223372036854775808.0) /* They think it's a feature. */
*(uint64_t *)dp = (uint64_t)(int64_t)(n - 9223372036854775808.0) +
U64x(80000000,00000000);
#endif
else
*(uint64_t *)dp = (uint64_t)n;
*(uint64_t *)dp = lj_num2u64(n);
} else {
goto err_conv; /* NYI: conversion to >64 bit integers. */
}