[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14271] trunk/blender/source/blender/ blenkernel/intern/modifier.c: Tools

Ken Hughes khughes at pacific.edu
Fri Mar 28 18:03:35 CET 2008


Revision: 14271
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14271
Author:   khughes
Date:     2008-03-28 18:03:34 +0100 (Fri, 28 Mar 2008)

Log Message:
-----------
Tools
-----
Bugfix #6961: in certain circumstances, array modifier would use deleted
copies of merged vertices, resulting in memory corruption and crashes.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/modifier.c

Modified: trunk/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/modifier.c	2008-03-28 14:55:49 UTC (rev 14270)
+++ trunk/blender/source/blender/blenkernel/intern/modifier.c	2008-03-28 17:03:34 UTC (rev 14271)
@@ -873,6 +873,9 @@
 			MTC_Mat4MulVecfl(offset, tmp_co);
 
 			for(j = 0; j < maxVerts; j++) {
+				/* if vertex already merged, don't use it */
+				if( indexMap[j].merge != -1 ) continue;
+
 				inMV = &src_mvert[j];
 				/* if this vert is within merge limit, merge */
 				if(VecLenCompare(tmp_co, inMV->co, amd->merge_dist)) {
@@ -1032,7 +1035,8 @@
 			numFaces++;
 
 			/* if the face has fewer than 3 vertices, don't create it */
-			if(mf2->v3 == 0 || (mf->v1 && (mf->v1 == mf->v3 || mf->v1 == mf->v4))) {
+			if(mf2->v3 == 0 || (mf2->v1 && (mf2->v1 == mf2->v3 || mf2->v1 ==
+mf2->v4))) {
 				numFaces--;
 				DM_free_face_data(result, numFaces, 1);
 			}





More information about the Bf-blender-cvs mailing list