diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-08 13:34:19 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-08 13:34:19 +0900 |
| commit | 286665c4370b6c741c5bd2e2fdb45fdea11a1070 (patch) | |
| tree | 72f1abd51938657b0154552943a20d386cc0e3a6 /src | |
| parent | 6f5d23429224ec4101db130805bf09996b870fa4 (diff) | |
| parent | 307c356c8a5f17de2f7fc6603a37b168ef2d3fdd (diff) | |
| download | mruby-286665c4370b6c741c5bd2e2fdb45fdea11a1070.tar.gz mruby-286665c4370b6c741c5bd2e2fdb45fdea11a1070.zip | |
Merge pull request #1830 from cremno/pool-fixes
two pool fixes
Diffstat (limited to 'src')
| -rw-r--r-- | src/pool.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/pool.c b/src/pool.c index f09df92c5..4d8c42dd1 100644 --- a/src/pool.c +++ b/src/pool.c @@ -5,6 +5,7 @@ */ #include <stddef.h> +#include <stdint.h> #include <string.h> #include "mruby.h" @@ -36,12 +37,12 @@ struct mrb_pool { #undef TEST_POOL #ifdef TEST_POOL -#define mrb_malloc(m,s) malloc(s) +#define mrb_malloc_simple(m,s) malloc(s) #define mrb_free(m,p) free(p) #endif #ifdef POOL_ALIGNMENT -# define ALIGN_PADDING(x) ((-x) & (POOL_ALIGNMENT - 1)) +# define ALIGN_PADDING(x) ((SIZE_MAX - (x) + 1) & (POOL_ALIGNMENT - 1)) #else # define ALIGN_PADDING(x) (0) #endif @@ -49,7 +50,7 @@ struct mrb_pool { mrb_pool* mrb_pool_open(mrb_state *mrb) { - mrb_pool *pool = (mrb_pool *)mrb_malloc(mrb, sizeof(mrb_pool)); + mrb_pool *pool = (mrb_pool *)mrb_malloc_simple(mrb, sizeof(mrb_pool)); if (pool) { pool->mrb = mrb; @@ -81,7 +82,7 @@ page_alloc(mrb_pool *pool, size_t len) if (len < POOL_PAGE_SIZE) len = POOL_PAGE_SIZE; - page = (struct mrb_pool_page *)mrb_malloc(pool->mrb, sizeof(struct mrb_pool_page)+len); + page = (struct mrb_pool_page *)mrb_malloc_simple(pool->mrb, sizeof(struct mrb_pool_page)+len); if (page) { page->offset = 0; page->len = len; |
