From 9e0dd2cff94a6bccdac3c0393fbae17067dadf01 Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Sun, 19 Jun 2016 18:37:47 +0900 Subject: [PATCH] enable bitmap gc only if available --- extlib/benz/gc/bitmap.c | 6 +----- extlib/benz/include/picrin/setup.h | 15 +++++++-------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/extlib/benz/gc/bitmap.c b/extlib/benz/gc/bitmap.c index f1927591..ac387296 100644 --- a/extlib/benz/gc/bitmap.c +++ b/extlib/benz/gc/bitmap.c @@ -7,10 +7,6 @@ #include "picrin/private/khash.h" #include "picrin/private/state.h" -#ifndef PIC_MEMALIGN -# error "bitmapgc requires PIC_MEMALIGN" -#endif - union header { struct { union header *ptr; @@ -294,7 +290,7 @@ heap_morecore(pic_state *pic) assert(2 <= HEADER_SIZE); - if(PIC_MEMALIGN(pic, (void **)&page, PIC_HEAP_PAGE_SIZE, PIC_HEAP_PAGE_SIZE) != 0) + if (PIC_MEMALIGN(pic, (void **)&page, PIC_HEAP_PAGE_SIZE, PIC_HEAP_PAGE_SIZE) != 0) pic_panic(pic, "memory exhausted"); memset(page->bitmap, 0, sizeof(page->bitmap)); diff --git a/extlib/benz/include/picrin/setup.h b/extlib/benz/include/picrin/setup.h index 3e83f8e2..3f339142 100644 --- a/extlib/benz/include/picrin/setup.h +++ b/extlib/benz/include/picrin/setup.h @@ -165,14 +165,6 @@ typedef unsigned long uint32_t; #include #include -# ifndef PIC_MEMALIGN -# include -# define PIC_MEMALIGN(pic, buf, alignment, size) posix_memalign(buf, alignment, size) -# endif -# ifndef PIC_USE_BITMAPGC -# define PIC_USE_BITMAPGC -# endif - #else # define assert(v) (void)0 @@ -468,3 +460,10 @@ double PIC_CSTRING_TO_DOUBLE(const char *); #else # define PIC_NAN_BOXING 0 #endif + +#if PIC_USE_LIBC && (defined (__unix__) || (defined (__APPLE__) && defined (__MACH__))) +# include +# define PIC_MEMALIGN(pic, buf, alignment, size) posix_memalign(buf, alignment, size) +# define PIC_USE_BITMAPGC 1 +#endif +