Commit: 7d697cdfef48f4c743fa7ec53acd8505c36a5db4
Author: Mai Lavelle
Date:   Tue Apr 24 04:24:29 2018 -0400
Branches: temp-modifier-rm-cddm
https://developer.blender.org/rB7d697cdfef48f4c743fa7ec53acd8505c36a5db4

Fix crash when no mesh in passed to deform functions

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

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

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

diff --git a/source/blender/blenkernel/intern/modifier.c 
b/source/blender/blenkernel/intern/modifier.c
index ba1bc9433d2..0ad80d491b0 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -863,11 +863,16 @@ void modifier_deformVerts(struct ModifierData *md, struct 
Depsgraph *depsgraph,
                mti->deformVerts(md, depsgraph, ob, mesh, vertexCos, numVerts, 
flag);
        }
        else {
-               DerivedMesh *dm = CDDM_from_mesh(mesh);
+               DerivedMesh *dm = NULL;
+               if (mesh) {
+                       dm = CDDM_from_mesh(mesh);
+               }
 
                mti->deformVerts_DM(md, depsgraph, ob, dm, vertexCos, numVerts, 
flag);
 
-               dm->release(dm);
+               if (dm) {
+                       dm->release(dm);
+               }
        }
 }
 
@@ -881,11 +886,16 @@ void modifier_deformMatrices(struct ModifierData *md, 
struct Depsgraph *depsgrap
                mti->deformMatrices(md, depsgraph, ob, mesh, vertexCos, 
defMats, numVerts);
        }
        else {
-               DerivedMesh *dm = CDDM_from_mesh(mesh);
+               DerivedMesh *dm = NULL;
+               if (mesh) {
+                       dm = CDDM_from_mesh(mesh);
+               }
 
                mti->deformMatrices_DM(md, depsgraph, ob, dm, vertexCos, 
defMats, numVerts);
 
-               dm->release(dm);
+               if (dm) {
+                       dm->release(dm);
+               }
        }
 }
 
@@ -899,11 +909,16 @@ void modifier_deformVertsEM(struct ModifierData *md, 
struct Depsgraph *depsgraph
                mti->deformVertsEM(md, depsgraph, ob, editData, mesh, 
vertexCos, numVerts);
        }
        else {
-               DerivedMesh *dm = CDDM_from_mesh(mesh);
+               DerivedMesh *dm = NULL;
+               if (mesh) {
+                       dm = CDDM_from_mesh(mesh);
+               }
 
                mti->deformVertsEM_DM(md, depsgraph, ob, editData, dm, 
vertexCos, numVerts);
 
-               dm->release(dm);
+               if (dm) {
+                       dm->release(dm);
+               }
        }
 }
 
@@ -917,11 +932,16 @@ void modifier_deformMatricesEM(struct ModifierData *md, 
struct Depsgraph *depsgr
                mti->deformMatricesEM(md, depsgraph, ob, editData, mesh, 
vertexCos, defMats, numVerts);
        }
        else {
-               DerivedMesh *dm = CDDM_from_mesh(mesh);
+               DerivedMesh *dm = NULL;
+               if (mesh) {
+                       dm = CDDM_from_mesh(mesh);
+               }
 
                mti->deformMatricesEM_DM(md, depsgraph, ob, editData, dm, 
vertexCos, defMats, numVerts);
 
-               dm->release(dm);
+               if (dm) {
+                       dm->release(dm);
+               }
        }
 }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to