From: Leigh Date: Thu, 18 Feb 2016 11:09:01 +0000 (+0000) Subject: Revert "Fix #71152: mt_rand() returns the different values from original mt19937ar.c" X-Git-Tag: php-7.0.5RC1~103 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a0724d30817600540946b41e40f4cfc2a0c30f80;p=php Revert "Fix #71152: mt_rand() returns the different values from original mt19937ar.c" This reverts commit 6f6bd8ce531636134efd5f669a4e8373fb2e9e51. `mt_rand()` is seedable with `mt_srand()` which means it can be used to (re)produce specific streams of numbers. All code (no matter how few instances that may be) that previously depended on this behaviour will no longer produce the same results. This kind of change needs to be discussed before being committed. --- diff --git a/ext/standard/rand.c b/ext/standard/rand.c index bc32f24e0b..2dd05e70bb 100644 --- a/ext/standard/rand.c +++ b/ext/standard/rand.c @@ -146,7 +146,7 @@ PHPAPI zend_long php_rand(void) #define loBits(u) ((u) & 0x7FFFFFFFU) /* mask the highest bit of u */ #define mixBits(u, v) (hiBit(u)|loBits(v)) /* move hi bit of u to hi bit of v */ -#define twist(m,u,v) (m ^ (mixBits(u,v)>>1) ^ ((php_uint32)(-(php_int32)(loBit(v))) & 0x9908b0dfU)) +#define twist(m,u,v) (m ^ (mixBits(u,v)>>1) ^ ((php_uint32)(-(php_int32)(loBit(u))) & 0x9908b0dfU)) /* {{{ php_mt_initialize */ diff --git a/ext/standard/tests/math/mt_rand_value.phpt b/ext/standard/tests/math/mt_rand_value.phpt deleted file mode 100644 index eeb009e4b4..0000000000 --- a/ext/standard/tests/math/mt_rand_value.phpt +++ /dev/null @@ -1,53 +0,0 @@ ---TEST-- -Test mt_rand() - returns the exact same values as mt19937ar.c ---FILE-- - ---EXPECTF-- -527860569 -1711027313 -1280820687 -688176834 -770499160 -412773096 -813703253 -898651287 -52508912 -757323740 -511765911 -274407457 -833082629 -1923803667 -1461450755 -1301698200 - -1612214270