From 3a5ec57cf8fe3bf10c81632dd5d6edaf959165be Mon Sep 17 00:00:00 2001 From: Kyle Gunger Date: Sun, 26 Nov 2023 16:56:12 -0500 Subject: Vector fixes --- compiler.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'compiler.c') diff --git a/compiler.c b/compiler.c index de44994..de34038 100644 --- a/compiler.c +++ b/compiler.c @@ -53,7 +53,7 @@ bool vect_remove(Vector *v, size_t index) { char *remove = v->data + (index * v->_el_sz); char *override = v->data + (index + 1) * v->_el_sz; - for(size_t i = 0; i < (v->count - 1) * v->_el_sz; i++) { + for(size_t i = 0; i < (v->count - index - 1) * v->_el_sz; i++) { remove[i] = override[i]; } @@ -79,11 +79,13 @@ bool vect_insert(Vector *v, size_t index, void *el) { char *new_spot = v->data + (v->count + 1) * v->_el_sz; char *old_spot = v->data + v->count * v->_el_sz; - for (int i = ; i >= (index * v->_el_sz); i++) { - new_spot[i] = old_spot[i]; + for (size_t i = 0; i < (v->count - index) * v->_el_sz; i++) { + *new_spot = *old_spot; + new_spot--; + old_spot--; } - for (int i = 0; i < v->_el_sz; i++) { + for (size_t i = 0; i < v->_el_sz; i++) { old_spot[i] = ((char *)el)[i]; } -- cgit v1.2.3