jpeg pushed a commit to branch master.

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

commit 9b1e785f8ebba618016dd217aa18835b4fb675b7
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Mon Jun 12 17:39:34 2017 +0900

    evas: Fix use of invalid EO object
    
    During a window destruction, the input devices are deleted and
    removed from the internal devices list. Since 83d18617b4375
    basic devices are children of a seat, which means that the seat
    deletion was triggering the devices deletion as well. As a
    consequence, we were walking an invalid list of devices.
    
    I'm not sure we should have a list of children in the device
    data and I'm also not sure we should have a list of devices in
    evas, instead of just the list of seats. It's a bit messy right
    now.
    
    Ref T5540
---
 src/lib/evas/canvas/evas_device.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/evas/canvas/evas_device.c 
b/src/lib/evas/canvas/evas_device.c
index 574f6e2ba7..783497ad98 100644
--- a/src/lib/evas/canvas/evas_device.c
+++ b/src/lib/evas/canvas/evas_device.c
@@ -207,6 +207,8 @@ evas_device_add_full(Evas *eo_e, const char *name, const 
char *desc,
           e->default_mouse = dev;
      }
 
+   // FIXME: All devices are in the same list, while evas only refs the seats
+   if (parent_dev) efl_ref(dev);
    e->devices = eina_list_append(e->devices, dev);
    efl_event_callback_add(dev, EFL_EVENT_DEL, _del_cb, e);
 

-- 


Reply via email to