devilhorns pushed a commit to branch master.

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

commit 0b77b7f59f483ee834536e528f5202d293faeb36
Author: Chris Michael <[email protected]>
Date:   Wed Dec 10 14:26:52 2014 -0500

    ecore-drm: Free devices before we release the libinput reference
    
    Summary: When destroying evdev devices, we make calls to
    libinput_device_unref ... but we cannot Make that call if the libinput
    context has been destroyed already (as happens when we free input). So
    to fix, don't release the libinput context until all devices have been
    released.
    
    @fix
    
    Signed-off-by: Chris Michael <[email protected]>
---
 src/lib/ecore_drm/ecore_drm_inputs.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/lib/ecore_drm/ecore_drm_inputs.c 
b/src/lib/ecore_drm/ecore_drm_inputs.c
index 1ba00a5..0c76467 100644
--- a/src/lib/ecore_drm/ecore_drm_inputs.c
+++ b/src/lib/ecore_drm/ecore_drm_inputs.c
@@ -295,13 +295,6 @@ ecore_drm_inputs_destroy(Ecore_Drm_Device *dev)
    Ecore_Drm_Seat *seat;
    Ecore_Drm_Evdev *edev;
 
-   EINA_LIST_FREE(dev->inputs, input)
-     {
-        if (input->hdlr) ecore_main_fd_handler_del(input->hdlr);
-        if (input->libinput) libinput_unref(input->libinput);
-        free(input);
-     }
-
    EINA_LIST_FREE(dev->seats, seat)
      {
         EINA_LIST_FREE(seat->devices, edev)
@@ -310,6 +303,13 @@ ecore_drm_inputs_destroy(Ecore_Drm_Device *dev)
         if (seat->name) eina_stringshare_del(seat->name);
         free(seat);
      }
+
+   EINA_LIST_FREE(dev->inputs, input)
+     {
+        if (input->hdlr) ecore_main_fd_handler_del(input->hdlr);
+        if (input->libinput) libinput_unref(input->libinput);
+        free(input);
+     }
 }
 
 EAPI Eina_Bool 

-- 


Reply via email to