aboutsummaryrefslogtreecommitdiff
path: root/vec.c
diff options
context:
space:
mode:
Diffstat (limited to 'vec.c')
-rw-r--r--vec.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/vec.c b/vec.c
index c9fe4b5..e9df934 100644
--- a/vec.c
+++ b/vec.c
@@ -1,24 +1,24 @@
#include <string.h>
#include "assert.h"
-#include "vec.h"
#include "types.h"
+#include "vec.h"
Vec _Vec_new(Arena *a, size tsize, size cap, int align) {
- assert(cap > 0);
- Vec v = {.size = tsize, .cap = cap, .len = 0, .align = align,.data = NULL};
- v.data = alloc(a, cap, tsize, align);
- return v;
+ assert(cap > 0);
+ Vec v = {.size = tsize, .cap = cap, .len = 0, .align = align, .data = 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->size, v->align);
- memcpy(cpy, v->data, v->len * v->size);
- v->cap *= 2;
- }
- memcpy(v->data + v->len * v->size, data, v->size);
- v->len++;
+ if (v->len == v->cap) {
+ void *cpy = alloc(a, v->cap * 2, v->size, v->align);
+ memcpy(cpy, v->data, v->len * v->size);
+ v->cap *= 2;
+ }
+ memcpy(v->data + v->len * v->size, data, v->size);
+ v->len++;
}
void *_Vec_get(Vec *v, int pos) { return v->data + v->size * pos; }