From 357e519575411cc338acfe899fde6e5ea3476801 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Tue, 5 Jan 2021 16:17:21 +0100 Subject: Fix T83282: division by zero when creating psys tasks --- source/blender/blenkernel/intern/particle_system.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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; -- cgit v1.2.3