refactor: Changed SizeResult to ArenaSizeResult
This commit is contained in:
@@ -47,7 +47,7 @@ typedef struct {
|
|||||||
ArenaErr err;
|
ArenaErr err;
|
||||||
size_t val;
|
size_t val;
|
||||||
};
|
};
|
||||||
} SizeResult;
|
} ArenaSizeResult;
|
||||||
|
|
||||||
ArenaResult arena_init(size_t capacity);
|
ArenaResult arena_init(size_t capacity);
|
||||||
void arena_destroy(Arena *arena);
|
void arena_destroy(Arena *arena);
|
||||||
|
|||||||
12
src/arena.c
12
src/arena.c
@@ -46,7 +46,7 @@ ArenaPointer arena_alloc(Arena *arena, size_t size, size_t alignment) {
|
|||||||
return (ArenaPointer) {.is_valid = false, .err = ARENA_INVALID_ALIGN};
|
return (ArenaPointer) {.is_valid = false, .err = ARENA_INVALID_ALIGN};
|
||||||
}
|
}
|
||||||
|
|
||||||
SizeResult padding = arena_get_align_padding(arena, alignment);
|
ArenaSizeResult padding = arena_get_align_padding(arena, alignment);
|
||||||
if (!padding.is_valid) {
|
if (!padding.is_valid) {
|
||||||
return (ArenaPointer) {.is_valid = false, .err = padding.err};
|
return (ArenaPointer) {.is_valid = false, .err = padding.err};
|
||||||
}
|
}
|
||||||
@@ -78,7 +78,7 @@ ArenaErr arena_ensure_capacity(Arena *arena, size_t size, size_t alignment) {
|
|||||||
return ARENA_INVALID_ALIGN;
|
return ARENA_INVALID_ALIGN;
|
||||||
}
|
}
|
||||||
|
|
||||||
SizeResult padding_res = arena_get_align_padding(arena, alignment);
|
ArenaSizeResult padding_res = arena_get_align_padding(arena, alignment);
|
||||||
if (!padding_res.is_valid) {
|
if (!padding_res.is_valid) {
|
||||||
return padding_res.err;
|
return padding_res.err;
|
||||||
}
|
}
|
||||||
@@ -173,13 +173,13 @@ ArenaErr arena_realloc(Arena *arena, size_t new_capacity) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
SizeResult arena_get_align_padding(Arena *arena, size_t alignment) {
|
ArenaSizeResult arena_get_align_padding(Arena *arena, size_t alignment) {
|
||||||
if (arena == NULL) {
|
if (arena == NULL) {
|
||||||
return (SizeResult){ .is_valid = false, .err = ARENA_NULL_ARG };
|
return (ArenaSizeResult){ .is_valid = false, .err = ARENA_NULL_ARG };
|
||||||
}
|
}
|
||||||
|
|
||||||
if (alignment == 0 || (alignment & (alignment - 1)) != 0) {
|
if (alignment == 0 || (alignment & (alignment - 1)) != 0) {
|
||||||
return (SizeResult){ .is_valid = false, .err = ARENA_INVALID_ALIGN };
|
return (ArenaSizeResult){ .is_valid = false, .err = ARENA_INVALID_ALIGN };
|
||||||
}
|
}
|
||||||
|
|
||||||
uintptr_t current_address = (uintptr_t)(arena->buffer + arena->offset);
|
uintptr_t current_address = (uintptr_t)(arena->buffer + arena->offset);
|
||||||
@@ -187,7 +187,7 @@ SizeResult arena_get_align_padding(Arena *arena, size_t alignment) {
|
|||||||
size_t mask = alignment - 1;
|
size_t mask = alignment - 1;
|
||||||
size_t padding = (size_t)(-current_address) & mask;
|
size_t padding = (size_t)(-current_address) & mask;
|
||||||
|
|
||||||
return (SizeResult){
|
return (ArenaSizeResult){
|
||||||
.is_valid = true,
|
.is_valid = true,
|
||||||
.val = padding
|
.val = padding
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user