diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2026-03-10 17:40:58 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2026-03-10 17:40:58 +0800 |
| commit | e0500692be6a8775c0a3c83984fc48d445a5f1d8 (patch) | |
| tree | b669a7072d375acd72905edc2520f4fe87dfa364 /stack.c | |
| parent | 0afd55f721a878ad1104f4343114355778eaa058 (diff) | |
| download | cvn-e0500692be6a8775c0a3c83984fc48d445a5f1d8.tar.gz | |
Move memory and stack to own files and sort before hash.
Diffstat (limited to 'stack.c')
| -rw-r--r-- | stack.c | 32 |
1 files changed, 32 insertions, 0 deletions
@@ -0,0 +1,32 @@ +#include <err.h> +#include <stdlib.h> +#include <unistd.h> + +#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); +} |
