summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/array.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/array.c b/src/array.c
index 5175d6f..cbeb256 100644
--- a/src/array.c
+++ b/src/array.c
@@ -14,6 +14,8 @@
#define al_array_init(arr) ((arr).size = 0, (arr).alloc = 0, (arr).data = NULL)
#define al_array_item_size(arr) (sizeof(*(arr).data)) // NOLINT(bugprone-sizeof-expression)
+#define al_array_is_empty(arr) ((arr).size == 0)
+
#define al_array_at(arr, i) ((arr).data[i])
#define al_array_last(arr) al_array_at(arr, (arr).size - 1)
@@ -77,6 +79,9 @@
#define al_array_foreach(arr, i, item) \
for (u32 i = 0; (i < (arr).size && (item = al_array_at(arr, i), 1)); i++)
+#define al_array_foreach_rev(arr, i, item) \
+ for (u32 i = (arr).size; (i-- > 0 && (item = al_array_at(arr, i), 1));)
+
#define al_array_foreach_ptr(arr, i, item) \
for (u32 i = 0; (i < (arr).size && (item = &al_array_at(arr, i), 1)); i++)