Base: Fixed shift amount in genrand() to work with large numbers
authorDam Sunwoo <dam.sunwoo@arm.com>
Tue, 10 Jan 2012 00:08:20 +0000 (18:08 -0600)
committerDam Sunwoo <dam.sunwoo@arm.com>
Tue, 10 Jan 2012 00:08:20 +0000 (18:08 -0600)
commit3f9e352de4e1ac34e1f0b83c3f66af2175b524f4
tree38397e9b46754ce2211a689639484883ba2ea5be
parent6a6d888ab486546c0b2e3facb9d1ce3ee417e9ae
Base: Fixed shift amount in genrand() to work with large numbers

The previous version didn't work correctly with max integer values (2^31-1 for
32-bit, 2^63-1 for 64bit version), causing "shift" to become -1.  For smaller
numbers, it wouldn't have caused functional errors, but would have resulted in
more than necessary loops in the while loop.  Special-cased cases when (max + 1
== 0) to prevent the ceilLog2 functions from failing.
src/base/random.cc