From 6b7313be94b15441426abd9af12d0a97f05217ba Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 31 Jul 2015 11:52:21 +1000 Subject: Don't initialize CDDM with MFace from Meshes Caused crash because MFace is no longer a layer which is added unless requested, causing CDDM to have numTessFaceData nonzero, but mface set to NULL. --- source/blender/blenkernel/intern/cdderivedmesh.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source') diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 9a3a74103f8..dde04104654 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -2034,7 +2034,7 @@ DerivedMesh *CDDM_from_mesh(Mesh *mesh) /* this does a referenced copy, with an exception for fluidsim */ - DM_init(dm, DM_TYPE_CDDM, mesh->totvert, mesh->totedge, mesh->totface, + DM_init(dm, DM_TYPE_CDDM, mesh->totvert, mesh->totedge, 0 /* mesh->totface */, mesh->totloop, mesh->totpoly); dm->deformedOnly = 1; @@ -2047,7 +2047,7 @@ DerivedMesh *CDDM_from_mesh(Mesh *mesh) CustomData_merge(&mesh->edata, &dm->edgeData, mask, alloctype, mesh->totedge); CustomData_merge(&mesh->fdata, &dm->faceData, mask | CD_MASK_ORIGINDEX, alloctype, - mesh->totface); + 0 /* mesh->totface */); CustomData_merge(&mesh->ldata, &dm->loopData, mask, alloctype, mesh->totloop); CustomData_merge(&mesh->pdata, &dm->polyData, mask, alloctype, @@ -2057,7 +2057,11 @@ DerivedMesh *CDDM_from_mesh(Mesh *mesh) cddm->medge = CustomData_get_layer(&dm->edgeData, CD_MEDGE); cddm->mloop = CustomData_get_layer(&dm->loopData, CD_MLOOP); cddm->mpoly = CustomData_get_layer(&dm->polyData, CD_MPOLY); +#if 0 cddm->mface = CustomData_get_layer(&dm->faceData, CD_MFACE); +#else + cddm->mface = NULL; +#endif /* commented since even when CD_ORIGINDEX was first added this line fails * on the default cube, (after editmode toggle too) - campbell */ -- cgit v1.2.3