[PATCH 1/3] compositor: Remove a plane from the compositor list when releasing it
Ander Conselvan de Oliveira
conselvan2 at gmail.com
Fri Jul 5 06:05:26 PDT 2013
From: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira at intel.com>
Weston would crash when hot plugging/unplugging outputs using the DRM
backend due to a corrupted plane list.
https://bugs.freedesktop.org/show_bug.cgi?id=66530
https://bugs.freedesktop.org/show_bug.cgi?id=66529
---
src/compositor.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/compositor.c b/src/compositor.c
index 8e74dbc..5196b17 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -2498,6 +2498,10 @@ weston_plane_init(struct weston_plane *plane, int32_t x, int32_t y)
pixman_region32_init(&plane->clip);
plane->x = x;
plane->y = y;
+
+ /* Init the link so that the call to wl_list_remove() when releasing
+ * the plane without ever stacking doesn't lead to a crash */
+ wl_list_init(&plane->link);
}
WL_EXPORT void
@@ -2505,6 +2509,8 @@ weston_plane_release(struct weston_plane *plane)
{
pixman_region32_fini(&plane->damage);
pixman_region32_fini(&plane->clip);
+
+ wl_list_remove(&plane->link);
}
WL_EXPORT void
--
1.7.9.5
More information about the wayland-devel
mailing list