From 871255529eefb504794f100e27ace01cdf57cfd4 Mon Sep 17 00:00:00 2001 From: sewn Date: Fri, 25 Oct 2024 13:11:51 +0300 Subject: [PATCH] safely destroy bar on global remove --- dam.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dam.c b/dam.c index 4c4a6f3..a3c37ec 100644 --- a/dam.c +++ b/dam.c @@ -685,14 +685,13 @@ registry_handle_global(void *data, struct wl_registry *wl_registry, static void registry_handle_global_remove(void *data, struct wl_registry *registry, uint32_t name) { - Bar *bar; + Bar *bar, *bar_tmp; - wl_list_for_each(bar, &bars, link) { + wl_list_for_each_safe(bar, bar_tmp, &bars, link) if (bar->wl_name == name) { bar_destroy(bar); return; } - } } static const struct wl_registry_listener registry_listener = {