[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