From 19afeacb884b53949236c30afaa4ce2866c30603 Mon Sep 17 00:00:00 2001 From: akr Date: Mon, 12 Apr 2010 15:16:45 +0000 Subject: * random.c (rand_init): use the absolute value of seed to make srand(-2**40) portable with 32bit and 64bit. [ruby-core:29292](2) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- random.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'random.c') diff --git a/random.c b/random.c index de047995d5..149069c76e 100644 --- a/random.c +++ b/random.c @@ -376,6 +376,8 @@ rand_init(struct MT *mt, VALUE vseed) case T_FIXNUM: len = 1; fixnum_seed = FIX2LONG(seed); + if (fixnum_seed < 0) + fixnum_seed = -fixnum_seed; buf[0] = (unsigned int)(fixnum_seed & 0xffffffff); #if SIZEOF_LONG > SIZEOF_INT32 if ((long)(int)fixnum_seed != fixnum_seed) { -- cgit v1.2.3