diff --git a/library/arena.h b/library/arena.h index 401fd7f..39bfb30 100644 --- a/library/arena.h +++ b/library/arena.h @@ -35,8 +35,6 @@ extern void * arena_allocate(size_t size); #endif #ifdef ARENA_IMPLEMENTATION -#define arena_block_allocation_size (13) - //~typedef struct { //~char * buffer; //~size_t count; @@ -44,6 +42,10 @@ extern void * arena_allocate(size_t size); //~void * next; //~} arena_data; +#ifndef ARENA_BLOCK_ALLOCATION_SIZE +#define ARENA_BLOCK_ALLOCATION_SIZE (1024) +#endif + static arena_data * arena; static int open_arena = 0; @@ -104,13 +106,13 @@ void * arena_allocate(size_t size) { arena = calloc(1, sizeof(*arena)); arena->block_count++; arena->block_array = realloc(arena->block_array, arena->block_count * sizeof(*arena->block_array)); - arena->block_array[arena->block_count - 1] = arena_init(arena_block_allocation_size); + arena->block_array[arena->block_count - 1] = arena_init(ARENA_BLOCK_ALLOCATION_SIZE); } if (arena->block_array[arena->block_count - 1]->count + size >= arena->block_array[arena->block_count - 1]->capacity) { arena->block_count++; arena->block_array = realloc(arena->block_array, arena->block_count * sizeof(*arena->block_array)); - arena->block_array[arena->block_count - 1] = arena_init(arena_block_allocation_size); + arena->block_array[arena->block_count - 1] = arena_init(ARENA_BLOCK_ALLOCATION_SIZE); } size_t spot = arena->block_array[arena->block_count - 1]->count; diff --git a/library/test b/library/test index 65a9ba8..602162b 100755 Binary files a/library/test and b/library/test differ diff --git a/library/test.c b/library/test.c index 2a8a65e..6222cbc 100644 --- a/library/test.c +++ b/library/test.c @@ -1,4 +1,6 @@ #define ARENA_IMPLEMENTATION +#define ARENA_BLOCK_ALLOCATION_SIZE (13) + #include "arena.h" #include @@ -19,18 +21,18 @@ int main (void) { printf("%s", c); char * d; - d = arena_allocate (6); - strcpy(d, "Heyo\n"); + d = arena_allocate (10); + strcpy(d, "Holy crap\n"); printf("%s", d); char * e; - e = arena_allocate (6); - strcpy(e, "Heyo\n"); + e = arena_allocate (8); + strcpy(e, "Serbia\n"); printf("%s", e); char * f; f = arena_allocate (6); - strcpy(f, "Heyo\n"); + strcpy(f, "Base\n"); printf("%s", f); return (0);