mirror of
https://github.com/yshui/picom.git
synced 2025-04-14 17:53:25 -04:00
utils/dynarr: add dynarr_find_pod
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
This commit is contained in:
parent
43e0a99259
commit
4dc78789da
1 changed files with 14 additions and 0 deletions
|
@ -169,3 +169,17 @@ static inline void dynarr_remove_swap_impl(size_t size, void *arr, size_t idx) {
|
|||
#define dynarr_foreach(arr, i) for (typeof(arr)(i) = (arr); (i) < dynarr_end(arr); (i)++)
|
||||
#define dynarr_foreach_rev(arr, i) \
|
||||
for (typeof(arr)(i) = dynarr_end(arr) - 1; (i) >= (arr); (i)--)
|
||||
|
||||
/// Find the index of an element in the array by using trivial comparison, returns -1 if
|
||||
/// not found.
|
||||
#define dynarr_find_pod(arr, needle) \
|
||||
({ \
|
||||
ptrdiff_t dynarr_find_ret = -1; \
|
||||
dynarr_foreach(arr, dynarr_find_i) { \
|
||||
if (*dynarr_find_i == (needle)) { \
|
||||
dynarr_find_ret = dynarr_find_i - (arr); \
|
||||
break; \
|
||||
} \
|
||||
} \
|
||||
dynarr_find_ret; \
|
||||
})
|
||||
|
|
Loading…
Add table
Reference in a new issue