From: JengHyun Kang Date: Tue, 6 Feb 2018 02:48:50 +0000 (+0900) Subject: ecore_wl_input: fix memory leaks X-Git-Tag: accepted/tizen/unified/20180221.135646~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F16%2F169316%2F1;p=platform%2Fupstream%2Fefl.git ecore_wl_input: fix memory leaks Change-Id: Iecac627edf2ccc095e1eea6902c14e71ba513fa1 --- 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; }