From 02d792ab128db6eb60eb48f18bec0331a9fca602 Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 8 Feb 2024 11:36:35 +0000 Subject: [PATCH] Added pop functions. --- src/vec.c | 8 +++++++- src/vec.h | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/vec.c b/src/vec.c index 4b59497..e51db7d 100644 --- a/src/vec.c +++ b/src/vec.c @@ -70,7 +70,7 @@ void vec_insert(vector *vec, void *data, uint index) { } void vec_erase(vector *vec, uint index) { assert(vec != NULL); - assert(index <= vec->size); + assert(index < vec->size); // TODO: handle wraparound memcpy(vec->elements + index * vec->element_size, @@ -78,6 +78,12 @@ void vec_erase(vector *vec, uint index) { (vec->size - index) * vec->element_size); vec->size--; } +void vec_pop_front(vector *vec) { vec_erase(vec, 0); } +void vec_pop_back(vector *vec) { + assert(vec != NULL); + assert(vec->size < 0); + vec->size--; +} void *vec_get(vector *vec, uint index) { // TODO: handle wraparound diff --git a/src/vec.h b/src/vec.h index c444354..72c324f 100644 --- a/src/vec.h +++ b/src/vec.h @@ -16,6 +16,8 @@ void vec_push_back(vector *vec, void *data); void vec_push_front(vector *vec, void *data); void vec_insert(vector *vec, void *data, uint index); void vec_erase(vector *vec, uint index); +void vec_pop_front(vector *vec); +void vec_pop_back(vector *vec); void *vec_get(vector *vec, uint index); size_t vec_size(vector *vec);