[PATCH weston 6/6] input: Free the memory allocated to store the device resource lists

Rob Bradford robert.bradford at intel.com
Mon Jul 22 09:31:43 PDT 2013


From: Rob Bradford <rob at linux.intel.com>

---
 src/input.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/src/input.c b/src/input.c
index 25f2a3e..d4c28fb 100644
--- a/src/input.c
+++ b/src/input.c
@@ -366,10 +366,15 @@ weston_pointer_create(void)
 WL_EXPORT void
 weston_pointer_destroy(struct weston_pointer *pointer)
 {
+	void *p;
+
 	if (pointer->sprite)
 		pointer_unmap_sprite(pointer);
 
-	/* XXX: What about pointer->resource_list? */
+	wl_array_for_each(p, &pointer->resources)
+		free(p);
+	wl_array_release(&pointer->resources);
+
 	if (!wl_list_empty(pointer->focus_resource_list))
 		wl_list_remove(&pointer->focus_listener.link);
 	free(pointer);
@@ -400,7 +405,12 @@ weston_keyboard_create(void)
 WL_EXPORT void
 weston_keyboard_destroy(struct weston_keyboard *keyboard)
 {
-	/* XXX: What about keyboard->resource_list? */
+	void *p;
+
+	wl_array_for_each(p, &keyboard->resources)
+		free(p);
+	wl_array_release(&keyboard->resources);
+
 	if (!wl_list_empty(keyboard->focus_resource_list))
 		wl_list_remove(&keyboard->focus_listener.link);
 	wl_array_release(&keyboard->keys);
@@ -431,7 +441,12 @@ weston_touch_create(void)
 WL_EXPORT void
 weston_touch_destroy(struct weston_touch *touch)
 {
-	/* XXX: What about touch->resource_list? */
+	void *p;
+
+	wl_array_for_each(p, &touch->resources)
+		free(p);
+	wl_array_release(&touch->resources);
+
 	if (!wl_list_empty(touch->focus_resource_list))
 		wl_list_remove(&touch->focus_listener.link);
 	free(touch);
-- 
1.8.3.1



More information about the wayland-devel mailing list