#define DEBUG #include #include "../include/arena.h" #include "../include/except.h" #include #include #include #define BUFSZ MB(20) #define ASIZE MB(1) static bool isZeroed(void *memory, unsigned int size){ unsigned char *mm = (unsigned char*)memory; // early out for empty size if (size == 0) return true; return (*mm == 0) && memcmp(mm, mm + 1, size - 1) == 0; } int main(void){ Arena a = arena_new(BUFSZ, NOZERO | SOFTFAIL); ASSERTED(a.beg != NULL); ASSERTED(isZeroed(a.beg, BUFSZ) == false); char *ptr = arena_alloc(&a, ASIZE, 1, 2, NOZERO); ASSERTED(ptr != NULL); ASSERTED(isZeroed(ptr,ASIZE ) == false); return EXIT_SUCCESS; }