compositor: use wl_list_for_each_safe when destroying output
Was causing an invalid read when the output is in fact destroyed. That's only
visible (segfault on my machine) on drm compositor because it's the only
backend trying to finish correct the compositor.
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
diff --git a/compositor/compositor.c b/compositor/compositor.c
index cb9b41f..fc75689 100644
--- a/compositor/compositor.c
+++ b/compositor/compositor.c
@@ -1932,10 +1932,10 @@
WL_EXPORT void
wlsc_compositor_shutdown(struct wlsc_compositor *ec)
{
- struct wlsc_output *output;
+ struct wlsc_output *output, *next;
/* Destroy all outputs associated with this compositor */
- wl_list_for_each(output, &ec->output_list, link)
+ wl_list_for_each_safe(output, next, &ec->output_list, link)
output->destroy(output);
}