From f80b349d5490aa289b2925d297f3f3c618977570 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Thu, 27 Nov 2025 17:45:17 +0100 Subject: Unify Lua number to FFI integer conversions. Phew. #1411 --- src/lib_io.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/lib_io.c') diff --git a/src/lib_io.c b/src/lib_io.c index 5659ff51..ec7d2545 100644 --- a/src/lib_io.c +++ b/src/lib_io.c @@ -127,8 +127,9 @@ static int io_file_readnum(lua_State *L, FILE *fp) lua_Number d; if (fscanf(fp, LUA_NUMBER_SCAN, &d) == 1) { if (LJ_DUALNUM) { - int32_t i = lj_num2int(d); - if (d == (lua_Number)i && !tvismzero((cTValue *)&d)) { + int64_t i64; + int32_t i; + if (lj_num2int_check(d, i64, i) && !tvismzero((cTValue *)&d)) { setintV(L->top++, i); return 1; } @@ -335,7 +336,7 @@ LJLIB_CF(io_method_seek) if (tvisint(o)) ofs = (int64_t)intV(o); else if (tvisnum(o)) - ofs = (int64_t)numV(o); + ofs = lj_num2i64(numV(o)); else if (!tvisnil(o)) lj_err_argt(L, 3, LUA_TNUMBER); } -- cgit v1.2.3-55-g6feb