diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2025-07-23 19:39:13 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2025-07-23 19:39:26 +0200 |
| commit | 421300c27123ca647772dc6d9bd0cabf7f5f9c99 (patch) | |
| tree | d916b62056b2440aef374b21373d16272bb709ee /vec.c | |
| parent | 53e9e371a16ae2d167f1fc2577dff2c2426eed68 (diff) | |
refactor: src & pragma once
Diffstat (limited to 'vec.c')
| -rw-r--r-- | vec.c | 29 |
1 files changed, 0 insertions, 29 deletions
@@ -1,29 +0,0 @@ -#include <string.h> - -#include "assert.h" -#include "types.h" -#include "vec.h" - -Vec _Vec_new(Arena *a, size tsize, size cap, size align) { - assert(cap > 0); - Vec v = {0}; - v.tsize = tsize; - v.cap = cap; - v.align = align; - v.len = 0; - v.data = alloc(a, cap, tsize, align); - return v; -} - -void Vec_push(Arena *a, Vec *v, void *data) { - if (v->len == v->cap) { - void *cpy = alloc(a, v->cap * 2, v->tsize, v->align); - memcpy(cpy, v->data, v->len * v->tsize); - v->cap *= 2; - v->data = cpy; - } - memcpy(v->data + v->len * v->tsize, data, v->tsize); - v->len++; -} - -void *_Vec_get(Vec v, size pos) { return v.data + v.tsize * pos; } |
