[PATCH weston] libweston-desktop/xwayland: Do not over-destroy the view

Quentin Glidic sardemff7+wayland at sardemff7.net
Wed Aug 31 23:27:50 UTC 2016


On 30/08/2016 02:26, Bryce Harrington wrote:
> On Thu, Aug 18, 2016 at 04:45:30PM +0200, Quentin Glidic wrote:
>> From: Quentin Glidic <sardemff7+git at sardemff7.net>
>>
>> With this weston_view_destroy() call, Xwayland popups make Weston freeze
>> in a busy-loop (probably corrupted wl_list).
>
> Looks like weston_desktop_surface_unlink_view() calls
> weston_desktop_view_destroy() for the specified surface->view, and that
> in turn will call weston_view_destroy() on the view (if it is
> parentless), and then frees it.
>
> So, you're right, the view is definitely going gone once
> weston_desktop_surface_unlink_view() is done, and can't be used by any
> subsequent calls.
>
> Reviewed-by: Bryce Harrington <bryce at osg.samsung.com>
>
> This fix is okayed to land for the release, and can be landed either
> pre- or post- beta.

Still not sure this fix is not pure magic, but anyway.
Thanks, pushed:
5c611d9..1714f01  master -> master

Cheers,


>> Signed-off-by: Quentin Glidic <sardemff7+git at sardemff7.net>
>> ---
>>  libweston-desktop/xwayland.c | 6 ++----
>>  1 file changed, 2 insertions(+), 4 deletions(-)
>>
>> diff --git a/libweston-desktop/xwayland.c b/libweston-desktop/xwayland.c
>> index cb08323..bd68bc6 100644
>> --- a/libweston-desktop/xwayland.c
>> +++ b/libweston-desktop/xwayland.c
>> @@ -152,13 +152,11 @@ weston_desktop_xwayland_surface_destroy(struct weston_desktop_surface *dsurface,
>>  	wl_list_remove(&surface->resource_destroy_listener.link);
>>
>>  	weston_desktop_surface_unset_relative_to(surface->surface);
>> -	if (surface->added) {
>> +	if (surface->added)
>>  		weston_desktop_api_surface_removed(surface->desktop,
>>  						   surface->surface);
>> -	} else if (surface->state == XWAYLAND) {
>> +	else if (surface->state == XWAYLAND)
>>  		weston_desktop_surface_unlink_view(surface->view);
>> -		weston_view_destroy(surface->view);
>> -	}
>>
>>  	free(surface);
>>  }
>> --
>> 2.9.2
>>
>> _______________________________________________
>> wayland-devel mailing list
>> wayland-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/wayland-devel


-- 

Quentin “Sardem FF7” Glidic


More information about the wayland-devel mailing list