discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=bd41e4626fdcab15e5f0bb9ecd13b9249537fa67

commit bd41e4626fdcab15e5f0bb9ecd13b9249537fa67
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Jan 24 16:28:49 2018 -0500

    efl-wl: don't leak xkb mmaps when running under x11
    
    ref a32735e9a7bc537430d155a4af853d498dda2009
---
 src/lib/efl_wl/efl_wl.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c
index fd02aed44a..4c16eb6c33 100644
--- a/src/lib/efl_wl/efl_wl.c
+++ b/src/lib/efl_wl/efl_wl.c
@@ -3710,13 +3710,13 @@ seat_keymap_update(Comp_Seat *s)
    Eina_Tmpstr *file;
    xkb_mod_mask_t latched = 0, locked = 0;
 
+   if (s->kbd.keymap_mem) munmap(s->kbd.keymap_mem, s->kbd.keymap_mem_size);
+   if (s->kbd.keymap_fd > -1) close(s->kbd.keymap_fd);
+
 #ifdef HAVE_ECORE_X
    if (!x11_kbd_keymap)
      {
 #endif
-        if (s->kbd.keymap_mem) munmap(s->kbd.keymap_mem, 
s->kbd.keymap_mem_size);
-        if (s->kbd.keymap_fd > -1) close(s->kbd.keymap_fd);
-
         if (s->kbd.state)
           {
              latched = xkb_state_serialize_mods(s->kbd.state, 
XKB_STATE_MODS_LATCHED);
@@ -4049,9 +4049,16 @@ static void
 seat_kbd_destroy(Comp_Seat *s)
 {
    if (s->kbd.external) return;
-   if (s->kbd.state) xkb_state_unref(s->kbd.state);
-   if (s->kbd.keymap) xkb_keymap_unref(s->kbd.keymap);
-   if (s->kbd.context) xkb_context_unref(s->kbd.context);
+#ifdef HAVE_ECORE_X
+   if (!x11_kbd_keymap)
+     {
+#endif
+        if (s->kbd.state) xkb_state_unref(s->kbd.state);
+        if (s->kbd.keymap) xkb_keymap_unref(s->kbd.keymap);
+        if (s->kbd.context) xkb_context_unref(s->kbd.context);
+#ifdef HAVE_ECORE_X
+     }
+#endif
    if (s->kbd.keymap_mem) munmap(s->kbd.keymap_mem, s->kbd.keymap_mem_size);
    if (s->kbd.keymap_fd > -1) close(s->kbd.keymap_fd);
    wl_array_release(&s->kbd.keys);

-- 


Reply via email to