diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-01-07 20:44:00 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-01-07 20:56:43 +0400 |
commit | d490e686f03ce75ab3f58a24bd0e6b8ff82a10ca (patch) | |
tree | 3bdd381910e8736dcb39aa4af3aacf6148a29ad0 /source/blender/modifiers/intern/MOD_laplaciansmooth.c | |
parent | d2fd8c75b0d657a59ed4fda524da283cb4ae2ef2 (diff) |
Fix T38100: laplacian smooth crash
Diffstat (limited to 'source/blender/modifiers/intern/MOD_laplaciansmooth.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_laplaciansmooth.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/source/blender/modifiers/intern/MOD_laplaciansmooth.c b/source/blender/modifiers/intern/MOD_laplaciansmooth.c index ed562afaf11..9f65915fd26 100644 --- a/source/blender/modifiers/intern/MOD_laplaciansmooth.c +++ b/source/blender/modifiers/intern/MOD_laplaciansmooth.c @@ -677,7 +677,12 @@ static CustomDataMask required_data_mask(Object *UNUSED(ob), ModifierData *md) static void deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts, ModifierApplyFlag UNUSED(flag)) { - DerivedMesh *dm = get_dm(ob, NULL, derivedData, NULL, false, false); + DerivedMesh *dm; + + if (numVerts == 0) + return; + + dm = get_dm(ob, NULL, derivedData, NULL, false, false); laplaciansmoothModifier_do((LaplacianSmoothModifierData *)md, ob, dm, vertexCos, numVerts); @@ -690,7 +695,12 @@ static void deformVertsEM( ModifierData *md, Object *ob, struct BMEditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) { - DerivedMesh *dm = get_dm(ob, editData, derivedData, NULL, false, false); + DerivedMesh *dm; + + if (numVerts == 0) + return; + + dm = get_dm(ob, editData, derivedData, NULL, false, false); laplaciansmoothModifier_do((LaplacianSmoothModifierData *)md, ob, dm, vertexCos, numVerts); |