From d3fc3ae3c4663d3aa68b66002192a60287e8c6d0 Mon Sep 17 00:00:00 2001 From: Mistivia Date: Mon, 9 Jun 2025 17:58:16 +0800 Subject: delete arena --- README.md | 1 - src/arena.c | 40 ---------------------------------------- src/arena.h | 23 ----------------------- 3 files changed, 64 deletions(-) delete mode 100644 src/arena.c delete mode 100644 src/arena.h diff --git a/README.md b/README.md index ee8d7c4..a1e12d5 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,6 @@ - Augmented red-black tree - Murmur Hash - String utilities -- Region-based memory management ## Build diff --git a/src/arena.c b/src/arena.c deleted file mode 100644 index f45d11b..0000000 --- a/src/arena.c +++ /dev/null @@ -1,40 +0,0 @@ -#include "arena.h" - -#include - -void init_arena(arena_t *r, int blocksz) { - if (blocksz < 4096) blocksz = 4096; - r->head = (struct memblock){NULL, 0, blocksz}; - r->head.buf = malloc(blocksz); - r->current = &(r->head); - r->blocksz = blocksz; -} - -void destroy_arena(arena_t *r) { - free(r->head.buf); - struct memblock *cur = r->head.next; - while (cur != NULL) { - struct memblock *prev = cur; - cur = cur->next; - free(prev->buf); - free(prev); - } -} - -void *arena_alloc(arena_t *r, int sz) { - int remain = r->current->cap - r->current->sz; - if (remain >= sz) { - void *ptr = r->current->buf + r->current->sz; - r->current->sz += sz; - return ptr; - } - int blocksz = sz > blocksz ? sz : blocksz; - struct memblock *nextblock = malloc(sizeof(struct memblock)); - void *ptr = malloc(blocksz); - nextblock->buf = ptr; - nextblock->cap = blocksz; - nextblock->sz = sz; - r->current->next = nextblock; - r->current = nextblock; - return ptr; -} diff --git a/src/arena.h b/src/arena.h deleted file mode 100644 index 80636e2..0000000 --- a/src/arena.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef ALGDS_ARENA_H_ -#define ALGDS_ARENA_H_ - -struct memblock { - void *buf; - int sz; - int cap; - struct memblock *next; -}; -typedef struct memblock memblock_t; - -struct arena { - struct memblock head; - struct memblock *current; - int blocksz; -}; -typedef struct arena arena_t; - -void init_arena(arena_t *r, int blocksz); -void destroy_arena(arena_t *r); -void *arena_alloc(arena_t *r, int sz); - -#endif -- cgit v1.0