From d4c13c2fcdd106218283e8e619d3a902a19cef95 Mon Sep 17 00:00:00 2001 From: JengHyun Kang Date: Tue, 6 Feb 2018 11:48:50 +0900 Subject: [PATCH] ecore_wl_input: fix memory leaks Change-Id: Iecac627edf2ccc095e1eea6902c14e71ba513fa1 --- src/lib/ecore_wayland/ecore_wl_input.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_wayland/ecore_wl_input.c b/src/lib/ecore_wayland/ecore_wl_input.c index 30b2685..1daa6f2 100644 --- a/src/lib/ecore_wayland/ecore_wl_input.c +++ b/src/lib/ecore_wayland/ecore_wl_input.c @@ -634,7 +634,7 @@ _ecore_wl_input_del(Ecore_Wl_Input *input) EINA_LIST_FREE(input->devices, dev) { - if (dev->tz_device) tizen_input_device_destroy(dev->tz_device); + if (dev->tz_device) tizen_input_device_release(dev->tz_device); if (dev->name) eina_stringshare_del(dev->name); if (dev->identifier) eina_stringshare_del(dev->identifier); dev->seat = NULL; @@ -902,6 +902,8 @@ _ecore_wl_input_cb_keyboard_keymap(void *data, struct wl_keyboard *keyboard EINA return; } + if (input->xkb.keymap) xkb_map_unref(input->xkb.keymap); + input->xkb.keymap = xkb_map_new_from_string(input->display->xkb.context, map, XKB_KEYMAP_FORMAT_TEXT_V1, 0); @@ -910,6 +912,7 @@ _ecore_wl_input_cb_keyboard_keymap(void *data, struct wl_keyboard *keyboard EINA close(fd); if (!(input->xkb.keymap)) return; + if (input->xkb.state) xkb_state_unref(input->xkb.state); if (!(input->xkb.state = xkb_state_new(input->xkb.keymap))) { xkb_map_unref(input->xkb.keymap); @@ -941,6 +944,7 @@ _ecore_wl_input_cb_keyboard_keymap(void *data, struct wl_keyboard *keyboard EINA if (!_ecore_wl_input_keymap_update_send(input)) { xkb_map_unref(input->xkb.keymap); + xkb_state_unref(input->xkb.state); input->xkb.keymap = NULL; return; } -- 2.7.4