From: Consolatis <35009135+Consolatis@users.noreply.github.com> Date: Tue, 21 Nov 2023 02:07:10 +0000 (+0100) Subject: common/array.h: add wl_array_for_each_reverse macro X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=042215f856d6335ec21d84deaba25c002057a817;p=proto%2Flabwc.git common/array.h: add wl_array_for_each_reverse macro --- diff --git a/include/common/array.h b/include/common/array.h index 4f6e6237..f6c51fc9 100644 --- a/include/common/array.h +++ b/include/common/array.h @@ -30,4 +30,15 @@ wl_array_len(struct wl_array *array) return array->size / sizeof(const char *); } +/** + * Iterates in reverse over an array. + * @pos: pointer that each array element will be assigned to + * @array: wl_array to iterate over + */ +#define wl_array_for_each_reverse(pos, array) \ + for (pos = !(array)->data ? NULL \ + : (void *)((const char *)(array)->data + (array)->size - sizeof(pos)); \ + pos && (const char *)pos >= (const char *)(array)->data; \ + (pos)--) + #endif /* LABWC_ARRAY_H */ diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 53d6d268..14fdb88e 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -5531,6 +5531,7 @@ sub process { # if ($starts_with_if_while_etc && !length($s) && $filename ne "include/view.h" + && $filename ne "include/common/array.h" && $filename ne "include/ssd-internal.h") { CHK("BRACES", "[labwc-custom] open brace { expected after if/while/for/switch - even with single statement blocks"); }