From e0500692be6a8775c0a3c83984fc48d445a5f1d8 Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Tue, 10 Mar 2026 17:40:58 +0800 Subject: Move memory and stack to own files and sort before hash. --- stack.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 stack.c (limited to 'stack.c') diff --git a/stack.c b/stack.c new file mode 100644 index 0000000..69ccb13 --- /dev/null +++ b/stack.c @@ -0,0 +1,32 @@ +#include +#include +#include + +#include "mem.h" +#include "stack.h" + +void stack_alloc(struct stack *st) +{ + st->len = 0; + st->cap = 512; + st->items = MALLOC(sizeof(st->items[0]) * st->cap); +} + +void *pop(struct stack *st) +{ + return st->items[--(st->len)]; +} + +void push(struct stack *st, void *item) +{ + if (st->len >= st->cap) { + st->cap <<= 1; + st->items = REALLOC(st->items, sizeof(st->items[0]) * st->cap); + } + st->items[st->len++] = item; +} + +void stack_free(struct stack *st) +{ + free(st->items); +} -- cgit v1.2.3