[PATCH] shell: Fix 2 switcher crashes.
Kristian Hoegsberg
hoegsberg at gmail.com
Tue Mar 20 10:49:33 PDT 2012
On Mon, Mar 12, 2012 at 04:06:01PM +0800, zhiwen.wu at linux.intel.com wrote:
> From: Alex Wu <zhiwen.wu at linux.intel.com>
>
> In case of no regular window, switcher will crash in switch_next()
> due to "next == NULL" and in switcher_destroy() due to
> "switcher->current == NULL".
Thanks, applied.
Kristian
> ---
> src/shell.c | 6 +++++-
> 1 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/src/shell.c b/src/shell.c
> index 765b0a4..28d5ea7 100644
> --- a/src/shell.c
> +++ b/src/shell.c
> @@ -1840,6 +1840,9 @@ switcher_next(struct switcher *switcher)
> if (next == NULL)
> next = first;
>
> + if (next == NULL)
> + return;
> +
> wl_list_remove(&switcher->listener.link);
> wl_list_insert(next->surface.resource.destroy_listener_list.prev,
> &switcher->listener.link);
> @@ -1871,7 +1874,8 @@ switcher_destroy(struct switcher *switcher, uint32_t time)
> weston_surface_damage(surface);
> }
>
> - activate(compositor->shell, switcher->current, device, time);
> + if (switcher->current)
> + activate(compositor->shell, switcher->current, device, time);
> wl_list_remove(&switcher->listener.link);
> wl_input_device_end_keyboard_grab(&device->input_device, time);
> free(switcher);
> --
> 1.7.5.4
>
More information about the wayland-devel
mailing list