Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Eagar <joeedh@gmail.com>2009-05-18 19:53:30 +0400
committerJoseph Eagar <joeedh@gmail.com>2009-05-18 19:53:30 +0400
commita8c0b748c965c90f81ee7ef77bbeb4d5809ce004 (patch)
tree38b0f7b1b43e29fc7c1878df670980156485698b
parentb99948d1daed4307cc384775de49e0eb006397f4 (diff)
fixed a few of the memory leaks
-rw-r--r--source/blender/blenkernel/intern/editderivedbmesh.c4
-rw-r--r--source/blender/bmesh/intern/bmesh_construct.c5
-rw-r--r--source/blender/bmesh/intern/bmesh_marking.c12
-rw-r--r--source/blender/editors/mesh/bmeshutils.c3
4 files changed, 18 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/editderivedbmesh.c b/source/blender/blenkernel/intern/editderivedbmesh.c
index 42cd76d624f..3bb8ec0907a 100644
--- a/source/blender/blenkernel/intern/editderivedbmesh.c
+++ b/source/blender/blenkernel/intern/editderivedbmesh.c
@@ -171,6 +171,10 @@ void TM_Free(BMEditMesh *em)
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);
}
diff --git a/source/blender/bmesh/intern/bmesh_construct.c b/source/blender/bmesh/intern/bmesh_construct.c
index 11fb39fe679..fc06148296a 100644
--- a/source/blender/bmesh/intern/bmesh_construct.c
+++ b/source/blender/bmesh/intern/bmesh_construct.c
@@ -475,6 +475,11 @@ BMesh *BM_Copy_Mesh(BMesh *bmold)
BM_Copy_Attributes(bmold, bm, loops[i], l);
}
}
+
+ V_FREE(etable);
+ V_FREE(vtable);
+ V_FREE(loops);
+ V_FREE(edges);
return bm;
}
diff --git a/source/blender/bmesh/intern/bmesh_marking.c b/source/blender/bmesh/intern/bmesh_marking.c
index c68a9cc5cb5..358e675a84f 100644
--- a/source/blender/bmesh/intern/bmesh_marking.c
+++ b/source/blender/bmesh/intern/bmesh_marking.c
@@ -60,12 +60,12 @@ void BM_SelectMode_Flush(BMesh *bm)
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 @@ void BM_SelectMode_Flush(BMesh *bm)
}
}
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 @@ void BM_Select_Face(BMesh *bm, BMFace *f, int select)
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);
}
}
diff --git a/source/blender/editors/mesh/bmeshutils.c b/source/blender/editors/mesh/bmeshutils.c
index 53bbbcd8b44..6171967879e 100644
--- a/source/blender/editors/mesh/bmeshutils.c
+++ b/source/blender/editors/mesh/bmeshutils.c
@@ -231,6 +231,7 @@ void EDBM_LoadEditBMesh(Scene *scene, Object *ob)
load_editMesh(scene, ob, em);
free_editMesh(em);
+ MEM_freeN(em);
}
void EDBM_FreeEditBMesh(BMEditMesh *tm)
@@ -241,6 +242,8 @@ void EDBM_FreeEditBMesh(BMEditMesh *tm)
void EDBM_init_index_arrays(BMEditMesh *tm, int forvert, int foredge, int forface)
{
+ EDBM_free_index_arrays(tm);
+
if (forvert) {
BMIter iter;
BMVert *ele;