From 07753fbe9ce83ce39e17358dcd57698f18fa2609 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Mon, 2 Jan 2012 15:31:01 +0200 Subject: [PATCH] compositor: add wlsc_input_device_fini() Add a function for destroying all objects allocated in wlsc_input_device_init(). This patch depends on "server: add wl_input_device_fini()" commit in the Wayland core. Compositor backends could now call wlsc_input_device_fini() to fix some memory leaks. Signed-off-by: Pekka Paalanen --- compositor/compositor.c | 12 ++++++++++++ compositor/compositor.h | 3 +++ 2 files changed, 15 insertions(+) diff --git a/compositor/compositor.c b/compositor/compositor.c index b993c1e..c3211e5 100644 --- a/compositor/compositor.c +++ b/compositor/compositor.c @@ -1677,6 +1677,18 @@ wlsc_input_device_init(struct wlsc_input_device *device, device->selection_data_source = NULL; } +WL_EXPORT void +wlsc_input_device_fini(struct wlsc_input_device *device) +{ + wl_list_remove(&device->link); + /* The global object is destroyed at wl_display_destroy() time. */ + + if (device->sprite) + destroy_surface(&device->sprite->surface.resource); + + wl_input_device_fini(&device->input_device); +} + static void bind_output(struct wl_client *client, void *data, uint32_t version, uint32_t id) diff --git a/compositor/compositor.h b/compositor/compositor.h index fa47489..e289054 100644 --- a/compositor/compositor.h +++ b/compositor/compositor.h @@ -408,6 +408,9 @@ wlsc_input_device_init(struct wlsc_input_device *device, struct wlsc_compositor *ec); void +wlsc_input_device_fini(struct wlsc_input_device *device); + +void wlsc_switcher_init(struct wlsc_compositor *compositor); enum { -- 2.7.4