lua: fix lua_tointeger() usage on 32-bit platforms
lua_tointeger() is equivalent to (ptrdiff_t)lua_tonumber(L), which causes precision loss on 32-bit systems when you expect to get a proper uint32_t value. LuaJIT stores numbers as doubles, so lua_tointeger() makes absolutely no sense. Replace lua_tointeger() with lua_tonumber() everywhere except cases when result is converted to int or lua_Integer. Fixes box/indices_any_type.test.lua on i386 and armhf Closes #2459
Showing
- src/box/lua/error.cc 2 additions, 2 deletionssrc/box/lua/error.cc
- src/box/lua/index.c 24 additions, 24 deletionssrc/box/lua/index.c
- src/box/lua/misc.cc 5 additions, 5 deletionssrc/box/lua/misc.cc
- src/box/lua/net_box.c 12 additions, 12 deletionssrc/box/lua/net_box.c
- src/box/lua/session.c 1 addition, 1 deletionsrc/box/lua/session.c
- src/box/lua/space.cc 1 addition, 1 deletionsrc/box/lua/space.cc
- src/box/lua/tuple.c 4 additions, 4 deletionssrc/box/lua/tuple.c
- src/lua/fiber.c 2 additions, 2 deletionssrc/lua/fiber.c
- src/lua/httpc.c 4 additions, 4 deletionssrc/lua/httpc.c
- src/lua/utils.c 1 addition, 1 deletionsrc/lua/utils.c
Loading
Please register or sign in to comment