From bc0318d2fc0d435e20b1186203ce2908162241ca Mon Sep 17 00:00:00 2001 From: kwolekr Date: Mon, 26 Oct 2015 04:01:01 -0400 Subject: [PATCH] SAPI: Fix seed parameter truncation for LuaPseudoRandom constructor Also fix a potential seed truncation issue on platforms where the range of ptrdiff_t (the underlying type of lua_Integer) is too small. --- src/script/lua_api/l_noise.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/script/lua_api/l_noise.cpp b/src/script/lua_api/l_noise.cpp index 43dd32023..6dcffa31c 100644 --- a/src/script/lua_api/l_noise.cpp +++ b/src/script/lua_api/l_noise.cpp @@ -440,7 +440,7 @@ int LuaPseudoRandom::create_object(lua_State *L) { NO_MAP_LOCK_REQUIRED; - int seed = luaL_checknumber(L, 1); + u64 seed = luaL_checknumber(L, 1); LuaPseudoRandom *o = new LuaPseudoRandom(seed); *(void **)(lua_newuserdata(L, sizeof(void *))) = o; luaL_getmetatable(L, className); @@ -537,8 +537,8 @@ int LuaPcgRandom::create_object(lua_State *L) { NO_MAP_LOCK_REQUIRED; - lua_Integer seed = luaL_checknumber(L, 1); - LuaPcgRandom *o = lua_isnumber(L, 2) ? + u64 seed = luaL_checknumber(L, 1); + LuaPcgRandom *o = lua_isnumber(L, 2) ? new LuaPcgRandom(seed, lua_tointeger(L, 2)) : new LuaPcgRandom(seed); *(void **)(lua_newuserdata(L, sizeof(void *))) = o;