From cf0588393ba0aa7d4f94d4d32e11355c9ece0b7e Mon Sep 17 00:00:00 2001 From: Caitlyn Stewart Date: Sun, 8 Jun 2025 19:00:56 +0100 Subject: [PATCH] server: Add wl_resource_for_each_reverse and for_each_reverse_safe macros Signed-off-by: Caitlyn Stewart --- src/wayland-server-core.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/wayland-server-core.h b/src/wayland-server-core.h index c2dcc218..d989aa19 100644 --- a/src/wayland-server-core.h +++ b/src/wayland-server-core.h @@ -645,6 +645,19 @@ wl_resource_get_destroy_listener(struct wl_resource *resource, resource = tmp, \ tmp = wl_resource_from_link(wl_resource_get_link(resource)->next)) +#define wl_resource_for_each_reverse(resource, list) \ + for (resource = 0, resource = wl_resource_from_link((list)->prev); \ + wl_resource_get_link(resource) != (list); \ + resource = wl_resource_from_link(wl_resource_get_link(resource)->prev)) + +#define wl_resource_for_each_reverse_safe(resource, tmp, list) \ + for (resource = 0, tmp = 0, \ + resource = wl_resource_from_link((list)->prev), \ + tmp = wl_resource_from_link((list)->prev->prev); \ + wl_resource_get_link(resource) != (list); \ + resource = tmp, \ + tmp = wl_resource_from_link(wl_resource_get_link(resource)->prev)) + struct wl_shm_buffer * wl_shm_buffer_get(struct wl_resource *resource);