refactor: changed to xmake, added lae_allocator dep

This commit is contained in:
2026-06-06 09:15:59 -06:00
parent 203b60cf65
commit f3a5ecf807
2 changed files with 30 additions and 23 deletions

View File

@@ -1,4 +1,5 @@
#include "lae_arena.h"
#include "lae_allocator.h"
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
@@ -6,12 +7,12 @@
#include <string.h>
struct Arena {
uint8_t* buffer;
uint8_t *buffer;
size_t capacity;
size_t offset;
};
ArenaErr arena_init(Arena** arena, size_t capacity) {
ArenaErr arena_init(Arena **arena, size_t capacity) {
if (arena == NULL) {
return ARENA_NULL_ARG;
}
@@ -20,12 +21,12 @@ ArenaErr arena_init(Arena** arena, size_t capacity) {
return ARENA_INVALID_SIZE;
}
Arena* new_arena = malloc(sizeof(Arena));
Arena *new_arena = malloc(sizeof(Arena));
if (new_arena == NULL) {
return ARENA_BAD_ALLOC;
}
void* buffer = malloc(capacity);
void *buffer = malloc(capacity);
if (buffer == NULL) {
return ARENA_BAD_ALLOC;
}
@@ -41,7 +42,7 @@ ArenaErr arena_init(Arena** arena, size_t capacity) {
return ARENA_OK;
}
ArenaErr arena_destroy(Arena** arena) {
ArenaErr arena_destroy(Arena **arena) {
if (arena == NULL || *arena == NULL) {
return ARENA_NULL_ARG;
}
@@ -56,7 +57,7 @@ ArenaErr arena_destroy(Arena** arena) {
return ARENA_OK;
}
ArenaPointer arena_alloc(Arena* arena, size_t size, size_t alignment) {
ArenaPointer arena_alloc(Arena *arena, size_t size, size_t alignment) {
if (arena == NULL) {
return (ArenaPointer){.is_valid = false, .err = ARENA_NULL_ARG};
}
@@ -96,7 +97,7 @@ ArenaPointer arena_alloc(Arena* arena, size_t size, size_t alignment) {
.arena = arena};
}
ArenaErr arena_ensure_capacity(Arena* arena, size_t size, size_t alignment) {
ArenaErr arena_ensure_capacity(Arena *arena, size_t size, size_t alignment) {
if (arena == NULL) {
return ARENA_NULL_ARG;
}
@@ -153,7 +154,7 @@ ArenaErr arena_ensure_capacity(Arena* arena, size_t size, size_t alignment) {
}
ArenaPointer
arena_push(Arena* arena, void* data, size_t size, size_t alignment) {
arena_push(Arena *arena, void *data, size_t size, size_t alignment) {
if (arena == NULL || data == NULL) {
return (ArenaPointer){.is_valid = false, .err = ARENA_NULL_ARG};
}
@@ -181,7 +182,7 @@ arena_push(Arena* arena, void* data, size_t size, size_t alignment) {
return pointer;
}
ArenaErr arena_realloc(Arena* arena, size_t new_capacity) {
ArenaErr arena_realloc(Arena *arena, size_t new_capacity) {
if (arena == NULL) {
return ARENA_NULL_ARG;
}
@@ -190,7 +191,7 @@ ArenaErr arena_realloc(Arena* arena, size_t new_capacity) {
return ARENA_INVALID_SIZE;
}
uint8_t* tmp = realloc(arena->buffer, new_capacity);
uint8_t *tmp = realloc(arena->buffer, new_capacity);
if (tmp == NULL) {
return ARENA_BAD_ALLOC;
}
@@ -200,7 +201,7 @@ ArenaErr arena_realloc(Arena* arena, size_t new_capacity) {
return ARENA_OK;
}
ArenaSizeResult arena_get_align_padding(Arena* arena, size_t alignment) {
ArenaSizeResult arena_get_align_padding(Arena *arena, size_t alignment) {
if (arena == NULL) {
return (ArenaSizeResult){.is_valid = false, .err = ARENA_NULL_ARG};
}
@@ -217,7 +218,7 @@ ArenaSizeResult arena_get_align_padding(Arena* arena, size_t alignment) {
return (ArenaSizeResult){.is_valid = true, .val = padding};
}
void* arena_unwrap_pointer(ArenaPointer p) {
void *arena_unwrap_pointer(ArenaPointer p) {
if (!p.is_valid) {
return NULL;
}

View File

@@ -31,7 +31,11 @@ option_end()
-- Packages
-- =========================================================
-- Run xmake repo --add lae-repo https://laentropia-homelab.tail7368da.ts.net/laentropia/xmake-repo.git
-- to add my repo :)
add_requires("cmocka", { optional = true }) -- For tests
add_requires("lae_allocator")
-- =========================================================
-- Library
@@ -40,6 +44,8 @@ add_requires("cmocka", { optional = true }) -- For tests
target("lae_arena")
set_kind("static")
add_packages("lae_allocator")
add_files("src/lae_arena.c")
add_headerfiles("include/*.h")