[Bf-blender-cvs] [62d131e962d] master: Fix T72792: Crash with Vertex Groups + Weld Modifier after generative modifiers

mano-wii noreply at git.blender.org
Mon Dec 30 15:25:55 CET 2019


Commit: 62d131e962d6e0a4f39db98d4f89243c16c55779
Author: mano-wii
Date:   Mon Dec 30 11:25:09 2019 -0300
Branches: master
https://developer.blender.org/rB62d131e962d6e0a4f39db98d4f89243c16c55779

Fix T72792: Crash with Vertex Groups + Weld Modifier after generative modifiers

Some generative modifiers remove the `CD_MDEFORMVERT` custom layer.
So make sure it exists in the mesh.

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

M	source/blender/modifiers/intern/MOD_weld.c

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

diff --git a/source/blender/modifiers/intern/MOD_weld.c b/source/blender/modifiers/intern/MOD_weld.c
index b393cedbd37..9c8579e1cd3 100644
--- a/source/blender/modifiers/intern/MOD_weld.c
+++ b/source/blender/modifiers/intern/MOD_weld.c
@@ -1629,13 +1629,15 @@ static Mesh *weldModifier_doWeld(WeldModifierData *wmd, const ModifierEvalContex
   if (defgrp_index != -1) {
     MDeformVert *dvert, *dv;
     dvert = CustomData_get_layer(&mesh->vdata, CD_MDEFORMVERT);
-    dv = &dvert[0];
-    v_mask = BLI_BITMAP_NEW(totvert, __func__);
-    for (i = 0; i < totvert; i++, dv++) {
-      const bool found = defvert_find_weight(dv, defgrp_index) > 0.0f;
-      if (found) {
-        BLI_BITMAP_ENABLE(v_mask, i);
-        v_mask_act++;
+    if (dvert) {
+      dv = &dvert[0];
+      v_mask = BLI_BITMAP_NEW(totvert, __func__);
+      for (i = 0; i < totvert; i++, dv++) {
+        const bool found = defvert_find_weight(dv, defgrp_index) > 0.0f;
+        if (found) {
+          BLI_BITMAP_ENABLE(v_mask, i);
+          v_mask_act++;
+        }
       }
     }
   }



More information about the Bf-blender-cvs mailing list