Fix T66812: Particles + Build Modifier = Crash
authorSergey Sharybin <sergey.vfx@gmail.com>
Mon, 15 Jul 2019 12:09:57 +0000 (14:09 +0200)
committerSergey Sharybin <sergey.vfx@gmail.com>
Mon, 15 Jul 2019 15:03:33 +0000 (17:03 +0200)
Particles can not be used with a destructive modifiers, so we can not
maker such configuration fully reliable.

Not sure this specific setup ever worked in 2.7x, maybe DM index was
somehow reset somewhere in particle system in older Blender version,
or maybe all of Blender version were crashing.

Anyway, seems to be very easy to avoid obvious index past the array
boundary in the mapping,

Reviewers: brecht, zeddb

Reviewed By: brecht

Maniphest Tasks: T66812

Differential Revision: https://developer.blender.org/D5257

source/blender/blenkernel/intern/particle.c

index 975e180545f8502a351eeaf033e2e283d18b63cc..079a348745c4d1b119634bf05fcde87e572a419b 100644 (file)
@@ -1645,7 +1645,7 @@ static int psys_map_index_on_dm(Mesh *mesh,
      * to their new location, which means a different index, and for faces
      * also a new face interpolation weights */
     if (from == PART_FROM_VERT) {
-      if (index_dmcache == DMCACHE_NOTFOUND || index_dmcache > mesh->totvert) {
+      if (index_dmcache == DMCACHE_NOTFOUND || index_dmcache >= mesh->totvert) {
         return 0;
       }