[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41929] branches/bmesh/blender/source/ blender/blenlib: better alignement for BLI_mempool struct
Campbell Barton
ideasman42 at gmail.com
Wed Nov 16 20:17:33 CET 2011
Revision: 41929
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41929
Author: campbellbarton
Date: 2011-11-16 19:17:33 +0000 (Wed, 16 Nov 2011)
Log Message:
-----------
better alignement for BLI_mempool struct
Modified Paths:
--------------
branches/bmesh/blender/source/blender/blenlib/BLI_mempool.h
branches/bmesh/blender/source/blender/blenlib/intern/BLI_mempool.c
Modified: branches/bmesh/blender/source/blender/blenlib/BLI_mempool.h
===================================================================
--- branches/bmesh/blender/source/blender/blenlib/BLI_mempool.h 2011-11-16 19:06:38 UTC (rev 41928)
+++ branches/bmesh/blender/source/blender/blenlib/BLI_mempool.h 2011-11-16 19:17:33 UTC (rev 41929)
@@ -48,8 +48,8 @@
first four bytes of the elements never contain the character string
'free'. use with care.*/
-struct BLI_mempool *BLI_mempool_create(int esize, int tote, int pchunk,
- int use_sysmalloc, int allow_iter);
+BLI_mempool *BLI_mempool_create(int esize, int tote, int pchunk,
+ short use_sysmalloc, short allow_iter);
void *BLI_mempool_alloc(BLI_mempool *pool);
void *BLI_mempool_calloc(BLI_mempool *pool);
void BLI_mempool_free(BLI_mempool *pool, void *addr);
Modified: branches/bmesh/blender/source/blender/blenlib/intern/BLI_mempool.c
===================================================================
--- branches/bmesh/blender/source/blender/blenlib/intern/BLI_mempool.c 2011-11-16 19:06:38 UTC (rev 41928)
+++ branches/bmesh/blender/source/blender/blenlib/intern/BLI_mempool.c 2011-11-16 19:17:33 UTC (rev 41929)
@@ -68,26 +68,29 @@
typedef struct BLI_mempool {
struct ListBase chunks;
- int esize, csize, pchunk; /*size of elements and chunks in bytes and number of elements per chunk*/
- BLI_freenode *free; /*free element list. Interleaved into chunk datas.*/
- int totalloc, totused; /*total number of elements allocated in total, and currently in use*/
- int use_sysmalloc, allow_iter;
+ int esize, csize, pchunk; /* size of elements and chunks in bytes
+ * and number of elements per chunk*/
+ short use_sysmalloc, allow_iter;
+ /* keeps aligned to 16 bits */
+
+ BLI_freenode *free; /* free element list. Interleaved into chunk datas.*/
+ int totalloc, totused; /* total number of elements allocated in total,
+ * and currently in use*/
} BLI_mempool;
+#define MEMPOOL_ELEM_SIZE_MIN (sizeof(void *) * 2)
+
BLI_mempool *BLI_mempool_create(int esize, int tote, int pchunk,
- int use_sysmalloc, int allow_iter)
+ short use_sysmalloc, short allow_iter)
{
BLI_mempool *pool = NULL;
BLI_freenode *lasttail = NULL, *curnode = NULL;
int i,j, maxchunks;
char *addr;
-
- if (esize < sizeof(void*)*2)
- esize = sizeof(void*)*2;
-
- if (esize < sizeof(void*)*2)
- esize = sizeof(void*)*2;
+ if (esize < MEMPOOL_ELEM_SIZE_MIN)
+ esize = MEMPOOL_ELEM_SIZE_MIN;
+
/*allocate the pool structure*/
pool = use_sysmalloc ? malloc(sizeof(BLI_mempool)) : MEM_mallocN(sizeof(BLI_mempool), "memory pool");
pool->esize = allow_iter ? MAX2(esize, sizeof(BLI_freenode)) : esize;
More information about the Bf-blender-cvs
mailing list