[Bf-blender-cvs] [7d697cdfef4] temp-modifier-rm-cddm: Fix crash when no mesh in passed to deform functions

Mai Lavelle noreply at git.blender.org
Tue Apr 24 10:25:53 CEST 2018


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);
+		}
 	}
 }



More information about the Bf-blender-cvs mailing list