diff options
Diffstat (limited to 'bignum.c')
-rw-r--r-- | bignum.c | 13 |
1 files changed, 5 insertions, 8 deletions
@@ -1255,20 +1255,17 @@ rb_big_abs(x) */ VALUE -rb_big_rand(max) +rb_big_rand(max, rand) VALUE max; + double rand; { - struct RBignum *v; + VALUE v; long len; len = RBIGNUM(max)->len; - v = RBIGNUM(bignew(len,1)); + v = bignew(len,1); while (len--) { -#ifdef HAVE_RANDOM - BDIGITS(v)[len] = random(); -#else - BDIGITS(v)[len] = rand(); -#endif + BDIGITS(v)[len] = ((USHORT)~0) * rand; } return rb_big_mod((VALUE)v, max); |