[Bf-blender-cvs] [090b8c14d2f] master: Fix (unreported) assert in modifier evaluation of weighted normals.

Bastien Montagne noreply at git.blender.org
Thu Feb 28 20:48:12 CET 2019


Commit: 090b8c14d2fc7e90e905906e5a7bb552583b7563
Author: Bastien Montagne
Date:   Thu Feb 28 19:54:22 2019 +0100
Branches: master
https://developer.blender.org/rB090b8c14d2fc7e90e905906e5a7bb552583b7563

Fix (unreported) assert in modifier evaluation of weighted normals.

Currently modifier stack assumes there are no poly normals data passed
around, so in case a modifier generates such data, it has to clean it up
after usage.

Whole handling of normals is a bit annoying and week currently, we can
probably enhance that once fully per-mesh item type cddata masks are in?

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

M	source/blender/modifiers/intern/MOD_weighted_normal.c

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

diff --git a/source/blender/modifiers/intern/MOD_weighted_normal.c b/source/blender/modifiers/intern/MOD_weighted_normal.c
index 036cb6cc23c..6321d1ac3cb 100644
--- a/source/blender/modifiers/intern/MOD_weighted_normal.c
+++ b/source/blender/modifiers/intern/MOD_weighted_normal.c
@@ -523,6 +523,7 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes
 	float (*polynors)[3] = CustomData_get_layer(pdata, CD_NORMAL);
 	if (!polynors) {
 		polynors = CustomData_add_layer(pdata, CD_NORMAL, CD_CALLOC, NULL, numPolys);
+		CustomData_set_layer_flag(pdata, CD_NORMAL, CD_FLAG_TEMPORARY);
 	}
 	BKE_mesh_calc_normals_poly(mvert, NULL, numVerts, mloop, mpoly, numLoops, numPolys, polynors, false);
 
@@ -587,6 +588,8 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes
 	MEM_SAFE_FREE(wn_data.mode_pair);
 	MEM_SAFE_FREE(wn_data.items_data);
 
+	/* Currently Modifier stack assumes there is no poly normal data passed around... */
+	CustomData_free_layers(pdata, CD_NORMAL, numPolys);
 	return result;
 }



More information about the Bf-blender-cvs mailing list