From 736f15908cf34a851140094897a13ff12d55fd0c Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Sat, 19 Oct 2024 11:30:46 -0400 Subject: array: Add remove_range() + tests Signed-off-by: Andrew Opalach --- src/array.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') diff --git a/src/array.c b/src/array.c index 8803c54..2b06d23 100644 --- a/src/array.c +++ b/src/array.c @@ -74,6 +74,15 @@ } \ } while (0) +#define al_array_remove_range(arr, i, e) \ + do { \ + if (e != (arr).size) { \ + al_memmove(&al_array_at(arr, i), &al_array_at(arr, e), \ + al_array_item_size(arr) * ((arr).size - e)); \ + } \ + (arr).size -= e - i; \ + } while (0) + #if AL_USE_STDLIB #define al_array_sort(arr, type, cmp) AL_STDLIB_QSORT((arr).data, type, (arr).size, cmp) #else -- cgit v1.2.3-101-g0448