Add mmap allocator
This commit is contained in:
+12
-4
@@ -22,9 +22,9 @@ static void arena_test_1(void)
|
||||
{
|
||||
ArenaParams arena_params = {};
|
||||
arena_params.size = 1024+ARENA_HEADER_SZ;
|
||||
Arena *arena = arena_alloc_(&arena_params);
|
||||
Arena *arena = arena_alloc(&arena_params);
|
||||
arena_dump(arena);
|
||||
char *ptr = arena_push(arena, 512, 1);
|
||||
void *ptr = arena_push(arena, 512, 1);
|
||||
MemoryZero(ptr, 512);
|
||||
printf("Allocated ptr %p\n", ptr);
|
||||
arena_dump(arena);
|
||||
@@ -43,27 +43,35 @@ static void arena_test_2(void)
|
||||
{
|
||||
ArenaParams arena_params = {};
|
||||
arena_params.size = 1024+ARENA_HEADER_SZ;
|
||||
Arena *arena = arena_alloc_(&arena_params);
|
||||
arena_params.flags = ArenaFlag_UseMalloc;
|
||||
Arena *arena = arena_alloc(&arena_params);
|
||||
|
||||
void *ptr;
|
||||
ptr = arena_push(arena, 1024, 8);
|
||||
MemoryZero(ptr, 1024);
|
||||
printf("Allocated ptr %p\n", ptr);
|
||||
|
||||
arena_dump(arena);
|
||||
ArenaCheckPoint checkpoint = arena_temp_begin(arena);
|
||||
ptr = arena_push(arena, 4096, 8);
|
||||
MemoryZero(ptr, 4096);
|
||||
|
||||
ptr = arena_push(arena, 4096, 8);
|
||||
MemoryZero(ptr, 4096);
|
||||
|
||||
ArenaCheckPoint checkpoint2 = arena_temp_begin(arena);
|
||||
ptr = arena_push(arena, 64, 8);
|
||||
MemoryZero(ptr, 64);
|
||||
|
||||
arena_temp_end(&checkpoint2);
|
||||
|
||||
arena_temp_end(&checkpoint);
|
||||
arena_pop_to(arena, 1088);
|
||||
arena_dump(arena);
|
||||
ptr = arena_push(arena, 1, 1);
|
||||
((U8*)ptr)[1] =1; //OOB
|
||||
((U8*)ptr)[0] = 0x37;
|
||||
ptr = arena_push(arena, 1, 1);
|
||||
((U8*)ptr)[0] = 0x73;
|
||||
arena_pop_to(arena, 1089);
|
||||
arena_dump(arena);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user