[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20263] branches/bmesh/blender/source/ blender: fixed a few of the memory leaks

Joseph Eagar joeedh at gmail.com
Mon May 18 17:53:30 CEST 2009


Revision: 20263
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20263
Author:   joeedh
Date:     2009-05-18 17:53:30 +0200 (Mon, 18 May 2009)

Log Message:
-----------
fixed a few of the memory leaks

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

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c	2009-05-18 15:13:11 UTC (rev 20262)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c	2009-05-18 15:53:30 UTC (rev 20263)
@@ -171,6 +171,10 @@
 	em->act_face = NULL;
 
 	if (em->looptris) MEM_freeN(em->looptris);
+
+	if (em->vert_index) MEM_freeN(em->vert_index);
+	if (em->edge_index) MEM_freeN(em->edge_index);
+	if (em->face_index) MEM_freeN(em->face_index);
 }
 
 

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_construct.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_construct.c	2009-05-18 15:13:11 UTC (rev 20262)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_construct.c	2009-05-18 15:53:30 UTC (rev 20263)
@@ -475,6 +475,11 @@
 			BM_Copy_Attributes(bmold, bm, loops[i], l);
 		}
 	}
+	
+	V_FREE(etable);
+	V_FREE(vtable);
+	V_FREE(loops);
+	V_FREE(edges);
 
 	return bm;
 }

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_marking.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_marking.c	2009-05-18 15:13:11 UTC (rev 20262)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_marking.c	2009-05-18 15:53:30 UTC (rev 20263)
@@ -60,12 +60,12 @@
 
 	int totsel;
 
-	if(bm->selectmode & SCE_SELECT_VERTEX){
-		for(e = BMIter_New(&edges, bm, BM_EDGES_OF_MESH, bm ); e; e= BMIter_Step(&edges)){
+	if(bm->selectmode & SCE_SELECT_VERTEX) {
+		for(e = BMIter_New(&edges, bm, BM_EDGES_OF_MESH, bm ); e; e= BMIter_Step(&edges)) {
 			if(BM_TestHFlag(e->v1, BM_SELECT) && BM_TestHFlag(e->v2, BM_SELECT)) BM_SetHFlag(e, 1);
 			else BM_ClearHFlag(e, 0);
 		}
-		for(f = BMIter_New(&faces, bm, BM_FACES_OF_MESH, bm ); f; f= BMIter_Step(&faces)){
+		for(f = BMIter_New(&faces, bm, BM_FACES_OF_MESH, bm ); f; f= BMIter_Step(&faces)) {
 			totsel = 0;
 			l=f->loopbase;
 			do{
@@ -81,7 +81,7 @@
 		}
 	}
 	else if(bm->selectmode & SCE_SELECT_EDGE) {
-		for(f = BMIter_New(&faces, bm, BM_FACES_OF_MESH, bm ); f; f= BMIter_Step(&faces)){
+		for(f = BMIter_New(&faces, bm, BM_FACES_OF_MESH, bm ); f; f= BMIter_Step(&faces)) {
 			totsel = 0;
 			l=f->loopbase;
 			do{
@@ -211,11 +211,11 @@
 
 		BM_ClearHFlag(&(f->head), BM_SELECT);
 		l = f->loopbase;
-		do{
+		do {
 			BM_ClearHFlag(&(l->v->head), BM_SELECT);
 			BM_ClearHFlag(&(l->e->head), BM_SELECT);
 			l = ((BMLoop*)(l->head.next));
-		}while(l != f->loopbase);
+		} while(l != f->loopbase);
 	}
 }
 

Modified: branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c	2009-05-18 15:13:11 UTC (rev 20262)
+++ branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c	2009-05-18 15:53:30 UTC (rev 20263)
@@ -231,6 +231,7 @@
 	
 	load_editMesh(scene, ob, em);
 	free_editMesh(em);
+	MEM_freeN(em);
 }
 
 void EDBM_FreeEditBMesh(BMEditMesh *tm)
@@ -241,6 +242,8 @@
 
 void EDBM_init_index_arrays(BMEditMesh *tm, int forvert, int foredge, int forface)
 {
+	EDBM_free_index_arrays(tm);
+
 	if (forvert) {
 		BMIter iter;
 		BMVert *ele;





More information about the Bf-blender-cvs mailing list