compositor: Remove a plane from the compositor list when releasing it
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
This commit is contained in:
parent
c1ae40222c
commit
3c36bf3486
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue