diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-12 15:16:45 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-12 15:16:45 +0000 |
commit | 19afeacb884b53949236c30afaa4ce2866c30603 (patch) | |
tree | 8e767f53a9765c6b0b1a7aee15b72f09cd69d91a | |
parent | 309077c9ae3b530052dce39ab871a04bce1b9468 (diff) | |
download | ruby-19afeacb884b53949236c30afaa4ce2866c30603.tar.gz |
* 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
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | random.c | 2 |
2 files changed, 8 insertions, 0 deletions
@@ -1,3 +1,9 @@ +Tue Apr 13 00:12:04 2010 Tanaka Akira <akr@fsij.org> + + * random.c (rand_init): use the absolute value of seed to + make srand(-2**40) portable with 32bit and 64bit. + [ruby-core:29292](2) + Mon Apr 12 22:48:47 2010 Tanaka Akira <akr@fsij.org> * enumerator.c (inspect_enumerator): don't raise for uninitialized @@ -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) { |