aboutsummaryrefslogtreecommitdiff
path: root/array.c
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2017-07-10 17:08:58 +0200
committerMarc André Tanner <mat@brain-dump.org>2017-07-10 18:26:05 +0200
commit6e0532af78294c76d0e0a187a40d330518bab0a8 (patch)
treeb59cf41605d3fbe97335ca8f6cb22943e2c36d96 /array.c
parent19a5d3c16ff5ef6861b5d2f0c5e0e4ce06ee73d0 (diff)
downloadvis-6e0532af78294c76d0e0a187a40d330518bab0a8.tar.gz
vis-6e0532af78294c76d0e0a187a40d330518bab0a8.tar.xz
array: add helper functions for LIFO usage
Diffstat (limited to 'array.c')
-rw-r--r--array.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/array.c b/array.c
index b65ad12..824154a 100644
--- a/array.c
+++ b/array.c
@@ -151,3 +151,21 @@ bool array_resize(Array *arr, size_t len) {
void array_sort(Array *arr, int (*compar)(const void*, const void*)) {
qsort(arr->items, arr->len, arr->elem_size, compar);
}
+
+bool array_push(Array *arr, void *item) {
+ return array_add(arr, item);
+}
+
+void *array_pop(Array *arr) {
+ void *item = array_peek(arr);
+ if (!item)
+ return NULL;
+ arr->len--;
+ return item;
+}
+
+void *array_peek(Array *arr) {
+ if (arr->len == 0)
+ return NULL;
+ return array_get(arr, arr->len - 1);
+}