refactor: changed to xmake, added lae_allocator dep
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user