wlroots-hyprland/backend/wayland
Simon Ser c88ad532ad backend/wayland: don't cache next item when destroying buffers
Because wl_buffer.release is per-buffer and not per-commit, the
Wayland backend might create multiple struct wlr_wl_buffer per
struct wlr_buffer. As a result, the wlr_buffer_unlock() call inside
destroy_wl_buffer() can cause another struct wlr_wl_buffer to be
destroyed.

In backend_destroy() we were iterating the list of buffers with
wl_list_for_each_safe(), which is actually not safe in this case:
the next buffer is cached, but might be destroyed as a side-effect
of calling destroy_wl_buffer().

Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3572
2023-02-02 16:45:09 +00:00
..
backend.c backend/wayland: don't cache next item when destroying buffers 2023-02-02 16:45:09 +00:00
meson.build backend/wayland: give wlr_pointer ownership to wlr_wl_seat 2022-03-17 17:16:47 +00:00
output.c backend/wayland: ensure buffers are released on shutdown 2022-12-06 20:14:44 +01:00
pointer.c Use wl_signal_emit_mutable 2022-08-18 07:16:16 -04:00
seat.c Use wl_signal_emit_mutable 2022-08-18 07:16:16 -04:00
tablet_v2.c Use wl_signal_emit_mutable 2022-08-18 07:16:16 -04:00