Fix Lua PcgRandom
authorest31 <MTest31@outlook.com>
Tue, 11 Aug 2015 17:07:56 +0000 (19:07 +0200)
committerest31 <MTest31@outlook.com>
Wed, 12 Aug 2015 09:36:22 +0000 (11:36 +0200)
commit738fbc66d096575bb9a1694056ce2d627a70c03d
treebdc56e4dc74cac201154176d02e32d57c6ab6958
parentf0b325254fdf76f988f0d2ae83a8aa6825b6d60e
Fix Lua PcgRandom

Before, this lua code led to a crash:

local pcg = PcgRandom(42)
local value = pcg:next()

This was because if you called s32 PcgRandom::range(min, max) with the
minimum and maximum possible values for s32 integers (which the lua
binding code did), u32 PcgRandom::range(bound) got called with 0 as the
bound. The bound however is one above the maximum value, so 0 is a "special"
value to pass to this function. This commit fixes the lua crash by
assigning the RNG's full range to the bound 0, which is also fits to the
"maximum is bound - 1" principle, as (u32)-1 is the maximum value in the
u32 range.
src/noise.cpp
src/unittest/test_random.cpp