This commit is contained in:
2026-06-16 12:24:44 -05:00
parent 21ce80de86
commit 9ee1496340
2 changed files with 13 additions and 13 deletions
+7 -7
View File
@@ -26,35 +26,35 @@ SOFTWARE.
#include "../ci2_platform.h" #include "../ci2_platform.h"
#include <stddef.h> #include <stddef.h>
struct CI2_Arena struct Arena
{ {
char* beg; char* beg;
char* end; char* end;
}; };
typedef struct CI2_Arena CI2_Arena; typedef struct Arena Arena;
/* Initialize an Arena with an existing buffer */ /* Initialize an Arena with an existing buffer */
CI2_DEF void CI2_DEF void
ci2_arena_back(struct CI2_Arena* a, char* buf, ptrdiff_t len); ci2_arena_back(struct Arena* a, char* buf, ptrdiff_t len);
/* Allocate a new Arena */ /* Allocate a new Arena */
CI2_DEF struct CI2_Arena CI2_DEF struct Arena
ci2_arena_new(ptrdiff_t cap); ci2_arena_new(ptrdiff_t cap);
/* Get the current capacity of an Arena */ /* Get the current capacity of an Arena */
CI2_DEF ptrdiff_t CI2_DEF ptrdiff_t
ci2_arena_capacity(struct CI2_Arena a); ci2_arena_capacity(struct Arena a);
/* Make an allocation from an Arena and do not zero.*/ /* Make an allocation from an Arena and do not zero.*/
CI2_DEF void* CI2_DEF void*
ci2_arena_malloc(struct CI2_Arena* a, ci2_arena_malloc(struct Arena* a,
ptrdiff_t size, ptrdiff_t size,
ptrdiff_t align, ptrdiff_t align,
ptrdiff_t count); ptrdiff_t count);
/* Make an allocation from an Arena and zero.*/ /* Make an allocation from an Arena and zero.*/
CI2_DEF void* CI2_DEF void*
ci2_arena_calloc(struct CI2_Arena* a, ci2_arena_calloc(struct Arena* a,
ptrdiff_t size, ptrdiff_t size,
ptrdiff_t align, ptrdiff_t align,
ptrdiff_t count); ptrdiff_t count);
+6 -6
View File
@@ -26,7 +26,7 @@ SOFTWARE.
/* Initialize an Arena with an existing buffer */ /* Initialize an Arena with an existing buffer */
void void
ci2_arena_back(struct CI2_Arena* a, char* buf, ptrdiff_t len) ci2_arena_back(struct Arena* a, char* buf, ptrdiff_t len)
{ {
CI2_ASSERT(a != NULL); CI2_ASSERT(a != NULL);
CI2_ASSERT(buf != NULL); CI2_ASSERT(buf != NULL);
@@ -35,10 +35,10 @@ ci2_arena_back(struct CI2_Arena* a, char* buf, ptrdiff_t len)
} }
/* Allocate a new Arena */ /* Allocate a new Arena */
struct CI2_Arena struct Arena
ci2_arena_new(ptrdiff_t cap) ci2_arena_new(ptrdiff_t cap)
{ {
struct CI2_Arena a = { 0 }; struct Arena a = { 0 };
a.beg = malloc(cap); a.beg = malloc(cap);
a.end = a.beg ? a.beg + cap : 0; a.end = a.beg ? a.beg + cap : 0;
return a; return a;
@@ -46,7 +46,7 @@ ci2_arena_new(ptrdiff_t cap)
/* Get the current capacity of an Arena */ /* Get the current capacity of an Arena */
ptrdiff_t ptrdiff_t
ci2_arena_capacity(struct CI2_Arena a) ci2_arena_capacity(struct Arena a)
{ {
ptrdiff_t res = a.end - a.beg; ptrdiff_t res = a.end - a.beg;
return res; return res;
@@ -54,7 +54,7 @@ ci2_arena_capacity(struct CI2_Arena a)
/* Make an allocation from an Arena and do not zero.*/ /* Make an allocation from an Arena and do not zero.*/
void* void*
ci2_arena_calloc(struct CI2_Arena* a, ci2_arena_calloc(struct Arena* a,
ptrdiff_t size, ptrdiff_t size,
ptrdiff_t align, ptrdiff_t align,
ptrdiff_t count) ptrdiff_t count)
@@ -72,7 +72,7 @@ ci2_arena_calloc(struct CI2_Arena* a,
/* Make an allocation from an Arena and zero.*/ /* Make an allocation from an Arena and zero.*/
void* void*
ci2_arena_malloc(struct CI2_Arena* a, ci2_arena_malloc(struct Arena* a,
ptrdiff_t size, ptrdiff_t size,
ptrdiff_t align, ptrdiff_t align,
ptrdiff_t count) ptrdiff_t count)