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.
This commit is contained in:
parent
306b067091
commit
bc0318d2fc
@ -440,7 +440,7 @@ int LuaPseudoRandom::create_object(lua_State *L)
|
|||||||
{
|
{
|
||||||
NO_MAP_LOCK_REQUIRED;
|
NO_MAP_LOCK_REQUIRED;
|
||||||
|
|
||||||
int seed = luaL_checknumber(L, 1);
|
u64 seed = luaL_checknumber(L, 1);
|
||||||
LuaPseudoRandom *o = new LuaPseudoRandom(seed);
|
LuaPseudoRandom *o = new LuaPseudoRandom(seed);
|
||||||
*(void **)(lua_newuserdata(L, sizeof(void *))) = o;
|
*(void **)(lua_newuserdata(L, sizeof(void *))) = o;
|
||||||
luaL_getmetatable(L, className);
|
luaL_getmetatable(L, className);
|
||||||
@ -537,8 +537,8 @@ int LuaPcgRandom::create_object(lua_State *L)
|
|||||||
{
|
{
|
||||||
NO_MAP_LOCK_REQUIRED;
|
NO_MAP_LOCK_REQUIRED;
|
||||||
|
|
||||||
lua_Integer seed = luaL_checknumber(L, 1);
|
u64 seed = luaL_checknumber(L, 1);
|
||||||
LuaPcgRandom *o = lua_isnumber(L, 2) ?
|
LuaPcgRandom *o = lua_isnumber(L, 2) ?
|
||||||
new LuaPcgRandom(seed, lua_tointeger(L, 2)) :
|
new LuaPcgRandom(seed, lua_tointeger(L, 2)) :
|
||||||
new LuaPcgRandom(seed);
|
new LuaPcgRandom(seed);
|
||||||
*(void **)(lua_newuserdata(L, sizeof(void *))) = o;
|
*(void **)(lua_newuserdata(L, sizeof(void *))) = o;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user