summaryrefslogtreecommitdiff
path: root/ext/standard/array.c
diff options
context:
space:
mode:
authorTom Van Looy <tom@ctors.net>2017-12-03 22:35:50 +0100
committerNikita Popov <nikita.ppv@gmail.com>2017-12-09 17:24:17 +0100
commite4e26f24285511c5aa2a359ff7e93c1748fdda3b (patch)
treeb3fa9519b3068603974c99a048d393e98009d2e3 /ext/standard/array.c
parent6d4de4cf0582cf33848826ab78aae58077dc2dea (diff)
downloadphp-git-e4e26f24285511c5aa2a359ff7e93c1748fdda3b.tar.gz
Remove RAND_RANGE() macro
The behavior of RANGE_RANGE() is 7.1 changed completely, from rescaling an already generated number to generating a number itself. Because of this str_shuffle() ended up generating two random numbers on every iteration. To avoid further misuse the function is dropped entirely. Extensions for PHP >= 7.1 should directly call php_mt_rand_range().
Diffstat (limited to 'ext/standard/array.c')
-rw-r--r--ext/standard/array.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index dfeaef8747..05c89d901b 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -2968,7 +2968,7 @@ static void php_array_data_shuffle(zval *array) /* {{{ */
}
}
while (--n_left) {
- RAND_RANGE(rnd_idx, 0, n_left, PHP_RAND_MAX);
+ rnd_idx = php_mt_rand_range(0, n_left);
if (rnd_idx != n_left) {
temp = hash->arData[n_left];
hash->arData[n_left] = hash->arData[rnd_idx];
@@ -2993,7 +2993,7 @@ static void php_array_data_shuffle(zval *array) /* {{{ */
}
}
while (--n_left) {
- RAND_RANGE(rnd_idx, 0, n_left, PHP_RAND_MAX);
+ rnd_idx = php_mt_rand_range(0, n_left);
if (rnd_idx != n_left) {
temp = hash->arData[n_left];
hash->arData[n_left] = hash->arData[rnd_idx];