[Bf-blender-cvs] [41b65d9a8ed] master: Fix T59631: Crash in Surface Deform modifier Bind when Dynamic Paint is included.

Bastien Montagne noreply at git.blender.org
Thu Jan 10 16:47:57 CET 2019


Commit: 41b65d9a8ed7f95b6851e6c6e1ef55d52961107d
Author: Bastien Montagne
Date:   Thu Jan 10 16:45:38 2019 +0100
Branches: master
https://developer.blender.org/rB41b65d9a8ed7f95b6851e6c6e1ef55d52961107d

Fix T59631: Crash in Surface Deform modifier Bind when Dynamic Paint is included.

We should *never* prevent copying basic mesh CDLayers (vertices etc.),
that does not make sense.

I guess issue was not in old DM because geometry was duplicated anyway,
and in 'normal' modifier stack eval, probably because bare mesh was
awlays requested? But we should not have to be explicit here about it.

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

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

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

diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index b2fe4ff742e..8428bc580d4 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -1170,7 +1170,7 @@ static void mesh_calc_modifiers(
 	ModifierData *firstmd, *md, *previewmd = NULL;
 	CDMaskLink *datamasks, *curr;
 	/* XXX Always copying POLYINDEX, else tessellated data are no more valid! */
-	CustomDataMask mask, nextmask, previewmask = 0, append_mask = CD_MASK_ORIGINDEX;
+	CustomDataMask mask, nextmask, previewmask = 0, append_mask = CD_MASK_ORIGINDEX | CD_MASK_BAREMESH;
 	float (*deformedVerts)[3] = NULL;
 	int numVerts = ((Mesh *)ob->data)->totvert;
 	const bool useRenderParams = (DEG_get_mode(depsgraph) == DAG_EVAL_RENDER);
@@ -1688,7 +1688,7 @@ static void editbmesh_calc_modifiers(
 {
 	ModifierData *md;
 	float (*deformedVerts)[3] = NULL;
-	CustomDataMask mask = 0, append_mask = 0;
+	CustomDataMask mask = 0, append_mask = CD_MASK_BAREMESH;
 	int i, numVerts = 0, cageIndex = modifiers_getCageIndex(scene, ob, NULL, 1);
 	CDMaskLink *datamasks, *curr;
 	const int required_mode = eModifierMode_Realtime | eModifierMode_Editmode;



More information about the Bf-blender-cvs mailing list