[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33291] trunk/blender/source/blender/ blenkernel/intern/bvhutils.c: Bugfix #24887

Ton Roosendaal ton at blender.org
Wed Nov 24 18:13:02 CET 2010


Revision: 33291
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33291
Author:   ton
Date:     2010-11-24 18:13:02 +0100 (Wed, 24 Nov 2010)

Log Message:
-----------
Bugfix #24887

Crash in snapping, bvh tree. Wrong check for numFaces here.
Fixed the crash by adding test for face pointer, but not sure
what the coder intended here. Needs investigation, left XXX remark.

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

Modified: trunk/blender/source/blender/blenkernel/intern/bvhutils.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/bvhutils.c	2010-11-24 16:54:18 UTC (rev 33290)
+++ trunk/blender/source/blender/blenkernel/intern/bvhutils.c	2010-11-24 17:13:02 UTC (rev 33291)
@@ -578,11 +578,12 @@
 			tree = BLI_bvhtree_new(numFaces, epsilon, tree_type, axis);
 			if(tree != NULL)
 			{
+				/* XXX numFaces is from different mesh as em_evil, made loop check for efa too */
 				/* XXX, for snap only, em & dm are assumed to be aligned, since dm is the em's cage */
 				EditMesh *em= data->em_evil;
 				if(em) {
 					EditFace *efa= em->faces.first;
-					for(i = 0; i < numFaces; i++, efa= efa->next) {
+					for(i = 0; i < numFaces, efa; i++, efa= efa->next) {
 						if(!(efa->f & 1) && efa->h==0 && !((efa->v1->f&1)+(efa->v2->f&1)+(efa->v3->f&1)+(efa->v4?efa->v4->f&1:0))) {
 							float co[4][3];
 							VECCOPY(co[0], vert[ face[i].v1 ].co);





More information about the Bf-blender-cvs mailing list