Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2014-04-02 03:09:48 +0400
committerCampbell Barton <ideasman42@gmail.com>2014-04-02 03:09:48 +0400
commit1d9e0c373d830daccba40fbb35046005cb84b463 (patch)
tree9e02ee7557042de5796b5417c45a820ee94f3a10 /source/blender/blenlib/intern/rand.c
parentda4b90a331e7b7ca72c510f0c62781427ba77d3e (diff)
Fix for BLI_rng_shuffle_array noted by mont29
Diffstat (limited to 'source/blender/blenlib/intern/rand.c')
-rw-r--r--source/blender/blenlib/intern/rand.c6
1 files 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;