[Bf-blender-cvs] [357e5195754] master: Fix T83282: division by zero when creating psys tasks

Jacques Lucke noreply at git.blender.org
Tue Jan 5 16:17:47 CET 2021


Commit: 357e519575411cc338acfe899fde6e5ea3476801
Author: Jacques Lucke
Date:   Tue Jan 5 16:17:21 2021 +0100
Branches: master
https://developer.blender.org/rB357e519575411cc338acfe899fde6e5ea3476801

Fix T83282: division by zero when creating psys tasks

===================================================================

M	source/blender/blenkernel/intern/particle_system.c

===================================================================

diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c
index 71df28c8b42..ad98079bc27 100644
--- a/source/blender/blenkernel/intern/particle_system.c
+++ b/source/blender/blenkernel/intern/particle_system.c
@@ -475,15 +475,15 @@ void psys_tasks_create(ParticleThreadContext *ctx,
 {
   ParticleTask *tasks;
   int numtasks = min_ii(BLI_system_thread_count() * 4, endpart - startpart);
-  float particles_per_task = (float)(endpart - startpart) / (float)numtasks, p, pnext;
-  int i;
+  float particles_per_task = numtasks > 0 ? (float)(endpart - startpart) / (float)numtasks : 0;
 
   tasks = MEM_callocN(sizeof(ParticleTask) * numtasks, "ParticleThread");
   *r_numtasks = numtasks;
   *r_tasks = tasks;
 
-  p = (float)startpart;
-  for (i = 0; i < numtasks; i++, p = pnext) {
+  float pnext;
+  float p = (float)startpart;
+  for (int i = 0; i < numtasks; i++, p = pnext) {
     pnext = p + particles_per_task;
 
     tasks[i].ctx = ctx;



More information about the Bf-blender-cvs mailing list