From 49c6d1412b58ea585390d0212d609bfc91af0d5b Mon Sep 17 00:00:00 2001 From: xolatile Date: Mon, 18 Nov 2024 05:19:39 -0500 Subject: [PATCH] Arena showcase... --- library/arena.h | 10 ++++++---- library/test | Bin 18880 -> 18888 bytes library/test.c | 12 +++++++----- 3 files changed, 13 insertions(+), 9 deletions(-) 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 65a9ba8cc7c90241b43578695c28fa2cd27f6f76..602162b95ac6dc5ea728b67ace241b7098a41c71 100755 GIT binary patch delta 711 zcmYjNT}V@582;X~o$VYq+j8n0Slb|?K}@H!A2Bz}(I*td3R)55nK|qS{HX>*!J84C zMA-VMFzlirkh&=PF0w9a5Hv?O5`=nF3%bxdlQ8;$(|gV#@P+SvpYP>)p7;H}5`zT> zg*|Yy82TbtY{ZBP-wvmR`sw~3iH*6W!&}WCN`ES}T%J1jkxy9eyWlSKdQ^c}*(1*f zEPS{=2a`3ZUDf_-8dVcjI)&#I9lnwa42&sMmCA9uGEzf~zWSa{i)%6=R4vcz6IYvl zYuZ~$M{i7nWh5@s*Cz+Z(iat!scxfTD4%Ure*T3@eeYANc~iQG%*8S}tXv(;l;c)o z<{~we*{#aQs5GWm-etlre_mgNxcqV4u^|^CB(k~ofV2&RT*kMN&kkhlx zeM2}>YqN}k(=HJ=w!Yzs^U>fvCzQAx&Ik}($U&Xh&Azt<{N2I-oCH2Q=FtpA zig-44PL#E_hoFO>ZSMg1$qLc)(9YMRr!nbO-Lmm1L*qr_)=%NF><6uKX7u^AeJuWSYL5cBoLV4j`n Oi^)wflYEH($bLfL;5W+Cnp2Q)7 z<44TGz|~ts41NzO1%-h#eA%1pX$nOKJ!sOv2yW-@B8Ufm-}60}@8|sPy&D2Q30$~> zsf@R*u9~4*tMWA7V@=PpAJ)E>Yu}t_-|<%^JN2q>aalewJ#WAnamJBm^&nn4HmS*p zrUWK+cvt(UX*?a-=5vwl0`QTbQw#dc)9ZX**;fI0y0D_(wCnz>X&OShY)XD&qAuvzV#4@AG1E@3XpfU`0!^V_{;52Mh z8G&<# @@ -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);