On Thu, Apr 26, 2018 at 05:01:24PM +0200, [email protected] wrote:
> From: Markus Ongyerth <[email protected]>
> 
> Fixes a memory leak by calling wl_keyboard_destroy on a any keyboard
> that was used to listen for events.
> 
> Signed-off-by: Markus Ongyerth <[email protected]>

Reviewed-by: Peter Hutterer <[email protected]>

Cheers,
   Peter
> ---
>  clients/weston-info.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/clients/weston-info.c b/clients/weston-info.c
> index d1bdcbde..3dfea7d8 100644
> --- a/clients/weston-info.c
> +++ b/clients/weston-info.c
> @@ -118,6 +118,7 @@ struct seat_info {
>       struct wl_seat *seat;
>       struct weston_info *info;
>  
> +     struct wl_keyboard *keyboard;
>       uint32_t capabilities;
>       char *name;
>  
> @@ -498,10 +499,8 @@ seat_handle_capabilities(void *data, struct wl_seat 
> *wl_seat,
>               return;
>  
>       if (caps & WL_SEAT_CAPABILITY_KEYBOARD) {
> -             struct wl_keyboard *keyboard;
> -
> -             keyboard = wl_seat_get_keyboard(seat->seat);
> -             wl_keyboard_add_listener(keyboard, &keyboard_listener,
> +             seat->keyboard = wl_seat_get_keyboard(seat->seat);
> +             wl_keyboard_add_listener(seat->keyboard, &keyboard_listener,
>                                        seat);
>  
>               seat->info->roundtrip_needed = true;
> @@ -531,6 +530,9 @@ destroy_seat_info(void *data)
>       if (seat->name != NULL)
>               free(seat->name);
>  
> +     if (seat->keyboard)
> +             wl_keyboard_destroy(seat->keyboard);
> +
>       wl_list_remove(&seat->global_link);
>  }
>  
> -- 
> 2.17.0
> 
> _______________________________________________
> wayland-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel
> 
_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to