[Bf-blender-cvs] [3589244] temp_depsgraph_split_ubereval: Use a localized ndm variable for the main dm and both possibl orco results.

Lukas Tönne noreply at git.blender.org
Fri Sep 25 12:13:39 CEST 2015


Commit: 35892446b00687fdb5d48c44d4bec367e7411b99
Author: Lukas Tönne
Date:   Fri Sep 25 11:54:59 2015 +0200
Branches: temp_depsgraph_split_ubereval
https://developer.blender.org/rB35892446b00687fdb5d48c44d4bec367e7411b99

Use a localized ndm variable for the main dm and both possibl orco results.

Proper scoping helps understanding of the code.

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

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

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

diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 79b9b32..44a59e7 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -2111,7 +2111,6 @@ static void mesh_calc_modifiers(
 			mesh_calc_deform_modifier(ob, &ctx, &iter, dm, orcodm, &deformedVerts, &numVerts);
 		}
 		else {
-			DerivedMesh *ndm;
 			CustomDataMask mask = iter.datamask->mask;
 			CustomDataMask append_mask = iter.append_mask;
 			CustomDataMask nextmask = (iter.datamask->next) ? iter.datamask->next->mask : dataMask;
@@ -2126,25 +2125,31 @@ static void mesh_calc_modifiers(
 
 			dm = mesh_calc_create_input_dm(ob, &ctx, md, mask, append_mask, nextmask, dm, orcodm, clothorcodm, deformedVerts);
 
-			ndm = modwrap_applyModifier(md, ob, dm, ctx.app_flags);
-			ASSERT_IS_VALID_DM(ndm);
+			{
+				DerivedMesh *ndm;
 
-			if (ndm) {
-				/* if the modifier returned a new dm, release the old one */
-				if (dm && dm != ndm) dm->release(dm);
+				ndm = modwrap_applyModifier(md, ob, dm, ctx.app_flags);
+				ASSERT_IS_VALID_DM(ndm);
 
-				dm = ndm;
+				if (ndm) {
+					/* if the modifier returned a new dm, release the old one */
+					if (dm && dm != ndm) dm->release(dm);
 
-				if (deformedVerts) {
-					if (deformedVerts != inputVertexCos)
-						MEM_freeN(deformedVerts);
+					dm = ndm;
 
-					deformedVerts = NULL;
+					if (deformedVerts) {
+						if (deformedVerts != inputVertexCos)
+							MEM_freeN(deformedVerts);
+
+						deformedVerts = NULL;
+					}
 				}
 			}
 
 			/* create an orco derivedmesh in parallel */
 			if (nextmask & CD_MASK_ORCO) {
+				DerivedMesh *ndm;
+
 				if (!orcodm)
 					orcodm = create_orco_dm(ob, me, NULL, CD_ORCO);
 
@@ -2165,6 +2170,8 @@ static void mesh_calc_modifiers(
 
 			/* create cloth orco derivedmesh in parallel */
 			if (nextmask & CD_MASK_CLOTH_ORCO) {
+				DerivedMesh *ndm;
+
 				if (!clothorcodm)
 					clothorcodm = create_orco_dm(ob, me, NULL, CD_CLOTH_ORCO);




More information about the Bf-blender-cvs mailing list