#include "arena.h"
#include <stdalign.h>
#include <stddef.h>
#include <string.h>
int main(void)
{
unsigned char *buf = malloc(4096);
{
if (!str0) {
assert(false);
}
str0[0] = 'a';
str0[1] = '\0';
assert(strcmp(str0, "a") == 0);
if (!tmp0) {
assert(false);
}
str0 = tmp0;
assert(strcmp(str0, "a") == 0);
strncpy(str0, "ab", sizeof("AA"));
assert(strcmp(str0, "ab") == 0);
if (!str1) {
assert(false);
}
strncpy(str1, "cc", sizeof("AA"));
assert(strcmp(str1, "cc") == 0);
if (!tmp1) {
assert(false);
}
str0 = tmp1;
assert(strcmp(str0, "ab") == 0);
strncpy(str0, "abab", sizeof("AAAA"));
assert(strcmp(str0, "abab") == 0);
assert(strcmp(str1, "cc") == 0);
assert(strcmp((char *)buf, "ab") == 0);
}
free(buf);
}
void * arena_reallocate_aligned(arena_type *self, void *old_ptr_, const size_t alignment, const size_t old_size, const size_t new_size)
Reallocate a previously allocated chunk in the arena. With specific aligment.
Definition arena_template.h:312
void * arena_allocate_aligned(arena_type *self, const size_t alignment, const size_t size)
Get the pointer to a chunk of the arena. With specific alignment.
Definition arena_template.h:261
void arena_deallocate_all(arena_type *self)
Deallocate all allocations in the arena.
Definition arena_template.h:253
arena_state_type arena_state_save(arena_type *arena_ptr)
Save the arena state temporarily.
Definition arena_template.h:223
void * arena_reallocate(arena_type *self, void *old_ptr, const size_t old_size, const size_t new_size)
Reallocate a previously allocated chunk in the arena.
Definition arena_template.h:341
void arena_init(arena_type *self, const size_t len, unsigned char *backing_buf)
Initialize the arena.
Definition arena_template.h:238
void * arena_allocate(arena_type *self, const size_t size)
Get the pointer to a chunk of the arena.
Definition arena_template.h:284
void arena_state_restore(arena_state_type prev_state)
Restore the arena state.
Definition arena_template.h:232
Tempory arena state struct.
Definition arena_template.h:114
Arena data struct.
Definition arena_template.h:104
size_t curr_offset
Current offset relative to buf_ptr.
Definition arena_template.h:107