From 1d9e0c373d830daccba40fbb35046005cb84b463 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 2 Apr 2014 10:09:48 +1100 Subject: [PATCH] Fix for BLI_rng_shuffle_array noted by mont29 --- source/blender/blenlib/intern/rand.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/source/blender/blenlib/intern/rand.c b/source/blender/blenlib/intern/rand.c index 75ce860c8e8..5d78608e70c 100644 --- a/source/blender/blenlib/intern/rand.c +++ b/source/blender/blenlib/intern/rand.c @@ -140,15 +140,13 @@ void BLI_rng_shuffle_array(RNG *rng, void *data, unsigned int elem_size_i, unsig unsigned int i = elem_tot; void *temp; - if (elem_tot == 0) { + if (elem_tot <= 1) { return; } temp = malloc(elem_size); - /* XXX Shouldn't it rather be "while (i--) {" ? - * Else we have no guaranty first (0) element has a chance to be shuffled... --mont29 */ - while (--i) { + while (i--) { unsigned int j = BLI_rng_get_uint(rng) % elem_tot; if (i != j) { void *iElem = (unsigned char *)data + i * elem_size_i;