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:
authorGeoffrey Bantle <hairbat@yahoo.com>2008-02-29 23:26:35 +0300
committerGeoffrey Bantle <hairbat@yahoo.com>2008-02-29 23:26:35 +0300
commit9d05090a8648606e7d85ce50cc9aee03584f7b8f (patch)
treea42f0e2429cb04e2c3c6583add788efe80343c1c /source/blender/blenkernel/intern/BME_mesh.c
parent0b1ed4c0cd7dbbf5764c4f8964eec1ed1870ffbf (diff)
-> Bevel cleanup
Bevel and bmesh code is in need of some cleanup and fixing. -Fixed potential crasher in BME_JEKV -Sped up memory usage of BME_MF -Removed unused structure members More to come soon....
Diffstat (limited to 'source/blender/blenkernel/intern/BME_mesh.c')
-rw-r--r--source/blender/blenkernel/intern/BME_mesh.c39
1 files changed, 18 insertions, 21 deletions
diff --git a/source/blender/blenkernel/intern/BME_mesh.c b/source/blender/blenkernel/intern/BME_mesh.c
index 064db8cf148..eee094da891 100644
--- a/source/blender/blenkernel/intern/BME_mesh.c
+++ b/source/blender/blenkernel/intern/BME_mesh.c
@@ -47,8 +47,6 @@
#include "BKE_bmesh.h"
#include "BKE_global.h"
#include "BKE_depsgraph.h"
-#include "BKE_DerivedMesh.h"
-
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
#include "BIF_editmesh.h"
@@ -89,8 +87,6 @@ void BME_free_mesh(BME_Mesh *bm)
while(bf){
nextf = bf->next;
BLI_remlink(&(bm->polys), bf);
- if(bf->holes.first)
- BLI_freelistN(&(bf->holes));
BME_free_poly(bm, bf);
bf = nextf;
@@ -112,16 +108,6 @@ void BME_free_mesh(BME_Mesh *bm)
bv = nextv;
}
- if (bm->derivedFinal) {
- bm->derivedFinal->needsFree = 1;
- bm->derivedFinal->release(bm->derivedFinal);
- }
-
- if (bm->derivedCage && bm->derivedCage != bm->derivedFinal) {
- bm->derivedCage->needsFree = 1;
- bm->derivedCage->release(bm->derivedCage);
- }
-
for(loopref=bm->loops.first;loopref;loopref=loopref->next) BME_delete_loop(bm,loopref->data);
BLI_freelistN(&(bm->loops));
@@ -155,9 +141,14 @@ void BME_free_mesh(BME_Mesh *bm)
*/
int BME_model_begin(BME_Mesh *bm){
- /*scratch edge pointer array*/
+ /*Initialize some scratch pointer arrays used by eulers*/
+ bm->vtar = MEM_callocN(sizeof(BME_Vert *) * 1024, "BMesh scratch vert array");
bm->edar = MEM_callocN(sizeof(BME_Edge *) * 1024, "BMesh scratch edge array");
- bm->edarlen = 1024;
+ bm->lpar = MEM_callocN(sizeof(BME_Loop *) * 1024, "BMesh scratch loop array");
+ bm->plar = MEM_callocN(sizeof(BME_Poly *) * 1024, "BMesh scratch poly array");
+
+ bm->vtarlen = bm->edarlen = bm->lparlen = bm->plarlen = 1024;
+
return 1;
}
@@ -170,11 +161,15 @@ void BME_model_end(BME_Mesh *bm){
totpoly = BLI_countlist(&(bm->polys));
totloop = BLI_countlist(&(bm->loops));
- if(bm->edar){
- MEM_freeN(bm->edar);
- bm->edar = NULL;
- bm->edarlen = 0;
- }
+ if(bm->vtar) MEM_freeN(bm->vtar);
+ if(bm->edar) MEM_freeN(bm->edar);
+ if(bm->lpar) MEM_freeN(bm->lpar);
+ if(bm->plar) MEM_freeN(bm->plar);
+
+ bm->vtar = bm->edar = bm->lpar = bm->plar = NULL;
+ bm->vtarlen = bm->edarlen = bm->lparlen = bm->plarlen = 1024;
+
+
if(bm->totvert!=totvert || bm->totedge!=totedge || bm->totpoly!=totpoly || bm->totloop!=totloop)
BME_error();
@@ -293,6 +288,8 @@ int BME_validate_mesh(struct BME_Mesh *bm, int halt)
}
}
+ /*validate that EIDs are within range... if not indicates corrupted mem*/
+
/*if we get this far, pretty safe to return 1*/
return 1;
}