Fix Lua PseudoRandom seeds being mangled

closes #14237
This commit is contained in:
sfan5 2024-01-10 20:00:14 +01:00
parent e83530d40b
commit d20f1182f2
2 changed files with 8 additions and 5 deletions

View File

@ -1,8 +1,11 @@
local function test_random()
-- Try out PseudoRandom
local pseudo = PseudoRandom(13)
assert(pseudo:next() == 22290)
assert(pseudo:next() == 13854)
-- We have comprehensive unit tests in C++, this is just to make sure the API code isn't messing up
local pr = PseudoRandom(13)
assert(pr:next() == 22290)
assert(pr:next() == 13854)
local pr2 = PseudoRandom(-101)
assert(pr2:next(0, 100) == 35)
end
unittests.register("test_random", test_random)

View File

@ -433,7 +433,7 @@ int LuaPseudoRandom::create_object(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
u64 seed = luaL_checknumber(L, 1);
s32 seed = luaL_checkinteger(L, 1);
LuaPseudoRandom *o = new LuaPseudoRandom(seed);
*(void **)(lua_newuserdata(L, sizeof(void *))) = o;
luaL_getmetatable(L, className);