[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36650] branches/bmesh/blender/source/ blender: =bmesh= fixed knifetool mem leak

Joseph Eagar joeedh at gmail.com
Thu May 12 20:46:21 CEST 2011


Revision: 36650
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36650
Author:   joeedh
Date:     2011-05-12 18:46:21 +0000 (Thu, 12 May 2011)
Log Message:
-----------
=bmesh= fixed knifetool mem leak

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c
    branches/bmesh/blender/source/blender/editors/mesh/knifetool.c

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c	2011-05-12 18:33:10 UTC (rev 36649)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c	2011-05-12 18:46:21 UTC (rev 36650)
@@ -133,9 +133,6 @@
 	
 	if (tm->looptris) MEM_freeN(tm->looptris);
 
-#if 0 //simple quad/triangle code for performance testing purposes
-	looptris = MEM_callocN(sizeof(void*)*bm->totface*8, "looptris");
-
 	f = BMIter_New(&iter, bm, BM_FACES_OF_MESH, NULL);
 	for ( ; f; f=BMIter_Step(&iter)) {
 		EditVert *v, *lastv=NULL, *firstv=NULL;
@@ -145,42 +142,6 @@
 		/*don't consider two-edged faces*/
 		if (f->len < 3) continue;
 		
-		//BLI_array_growone(looptris);
-		//BLI_array_growone(looptris);
-		//BLI_array_growone(looptris);
-
-		looptris[i*3] = f->loopbase;
-		looptris[i*3+1] = f->loopbase->head.next;
-		looptris[i*3+2] = f->loopbase->head.next->next;
-		i++;
-
-		if (f->len > 3) {
-			//BLI_array_growone(looptris);
-			//BLI_array_growone(looptris);
-			//BLI_array_growone(looptris);
-
-			looptris[i*3] = f->loopbase;
-			looptris[i*3+1] = f->loopbase->head.next->next;
-			looptris[i*3+2] = f->loopbase->head.next->next->next;
-			i++;
-		}
-
-	}
-
-	tm->tottri = i;
-	tm->looptris = looptris;
-	return;
-#endif
-
-	f = BMIter_New(&iter, bm, BM_FACES_OF_MESH, NULL);
-	for ( ; f; f=BMIter_Step(&iter)) {
-		EditVert *v, *lastv=NULL, *firstv=NULL;
-		EditEdge *e;
-		EditFace *efa;
-
-		/*don't consider two-edged faces*/
-		if (f->len < 3) continue;
-		
 		BLI_begin_edgefill();
 		/*scanfill time*/
 		l = BMIter_New(&liter, bm, BM_LOOPS_OF_FACE, f);

Modified: branches/bmesh/blender/source/blender/editors/mesh/knifetool.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/knifetool.c	2011-05-12 18:33:10 UTC (rev 36649)
+++ branches/bmesh/blender/source/blender/editors/mesh/knifetool.c	2011-05-12 18:46:21 UTC (rev 36650)
@@ -886,7 +886,9 @@
 	if (results)
 		MEM_freeN(results);
 	
+	BLI_bvhtree_free(tree2);
 	*count = BLI_array_count(edges);
+	
 	return edges;
 }
 
@@ -1813,8 +1815,10 @@
 	}
 	
 	obedit = CTX_data_edit_object(C);
-	if (!obedit || obedit->type != OB_MESH || ((Mesh*)obedit->data)->edit_btmesh != kcd->em)
+	if (!obedit || obedit->type != OB_MESH || ((Mesh*)obedit->data)->edit_btmesh != kcd->em) {
+		knifetool_exit(C, op);
 		return OPERATOR_FINISHED;
+	}
 
 	view3d_operator_needs_opengl(C);
 	




More information about the Bf-blender-cvs mailing list