minor edits to last commit - use fixed chunksize, rather than the number of verts/edges/faces in bm_mempool_init().

This commit is contained in:
Campbell Barton 2012-03-01 23:59:34 +00:00
parent c26f5035b6
commit 979a80e743
3 changed files with 10 additions and 9 deletions

@ -2119,11 +2119,10 @@ void CustomData_bmesh_init_pool(CustomData *data, int totelem, const char htype)
BLI_assert(data->pool == NULL);
switch (htype) {
case BM_VERT: chunksize = 512; break;
case BM_EDGE: chunksize = 1024; break;
case BM_LOOP: chunksize = 2048; break;
case BM_FACE: chunksize = 512; break;
case BM_ALL: chunksize = 512; break; /* use this when its undefined */
case BM_VERT: chunksize = bm_mesh_chunksize_default.totvert; break;
case BM_EDGE: chunksize = bm_mesh_chunksize_default.totedge; break;
case BM_LOOP: chunksize = bm_mesh_chunksize_default.totloop; break;
case BM_FACE: chunksize = bm_mesh_chunksize_default.totface; break;
default:
BLI_assert(0);
chunksize = 512;

@ -45,13 +45,14 @@
/* used as an extern, defined in bmesh.h */
BMAllocTemplate bm_mesh_allocsize_default = {512, 1024, 2048, 512};
BMAllocTemplate bm_mesh_chunksize_default = {512, 1024, 2048, 512};
static void bm_mempool_init(BMesh *bm, const BMAllocTemplate *allocsize)
{
bm->vpool = BLI_mempool_create(sizeof(BMVert), allocsize->totvert, allocsize->totvert, BLI_MEMPOOL_ALLOW_ITER);
bm->epool = BLI_mempool_create(sizeof(BMEdge), allocsize->totedge, allocsize->totedge, BLI_MEMPOOL_ALLOW_ITER);
bm->lpool = BLI_mempool_create(sizeof(BMLoop), allocsize->totloop, allocsize->totloop, 0);
bm->fpool = BLI_mempool_create(sizeof(BMFace), allocsize->totface, allocsize->totface, BLI_MEMPOOL_ALLOW_ITER);
bm->vpool = BLI_mempool_create(sizeof(BMVert), allocsize->totvert, bm_mesh_chunksize_default.totvert, BLI_MEMPOOL_ALLOW_ITER);
bm->epool = BLI_mempool_create(sizeof(BMEdge), allocsize->totedge, bm_mesh_chunksize_default.totedge, BLI_MEMPOOL_ALLOW_ITER);
bm->lpool = BLI_mempool_create(sizeof(BMLoop), allocsize->totloop, bm_mesh_chunksize_default.totloop, 0);
bm->fpool = BLI_mempool_create(sizeof(BMFace), allocsize->totface, bm_mesh_chunksize_default.totface, BLI_MEMPOOL_ALLOW_ITER);
#ifdef USE_BMESH_HOLES
bm->looplistpool = BLI_mempool_create(sizeof(BMLoopList), allocsize[3], allocsize[3], FALSE, FALSE);

@ -53,5 +53,6 @@ typedef struct BMAllocTemplate {
} BMAllocTemplate;
extern BMAllocTemplate bm_mesh_allocsize_default;
extern BMAllocTemplate bm_mesh_chunksize_default;
#endif /* __BMESH_MESH_H__ */