From 04d24b3168f1b30ce52f3e6e0cdd3e5ff9ff24c4 Mon Sep 17 00:00:00 2001 From: Yukihiro Matsumoto Date: Thu, 28 Jun 2012 15:07:11 +0900 Subject: always define POOL_ALIGNMENT (default 4); reduce strength as well; close #333 --- src/pool.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/pool.c') diff --git a/src/pool.c b/src/pool.c index 3cbb2b163..612bbe647 100644 --- a/src/pool.c +++ b/src/pool.c @@ -8,6 +8,18 @@ #include #include +/* configuration section */ +/* allcated memory address should be multiple of POOL_ALLOC_ALIGN */ +/* or undef it if alignment does not matter */ +#ifndef POOL_ALIGNMENT +#define POOL_ALIGNMENT 4 +#endif +/* page size of memory pool */ +#ifndef POOL_PAGE_SIZE +#define POOL_PAGE_SIZE 16000 +#endif +/* end of configuration section */ + struct mrb_pool_page { struct mrb_pool_page *next; size_t offset; @@ -29,10 +41,8 @@ struct mrb_pool { #define mrb_free(m,p) free(p) #endif -#define POOL_PAGE_SIZE 16000 - -#ifdef ALLOC_ALIGN -# define ALIGN_PADDING(x) ((x % ALLOC_ALIGN) ? ALLOC_ALIGN - (x % ALLOC_ALIGN) : 0) +#ifdef POOL_ALIGNMENT +# define ALIGN_PADDING(x) ((-x) & (POOL_ALIGNMENT - 1)) #else # define ALIGN_PADDING(x) (0) #endif -- cgit v1.2.3