From: Sung-Jin Park Date: Sat, 5 Jun 2021 01:04:38 +0000 (+0900) Subject: e_input: fixed leak regarding ecore_device removal X-Git-Tag: submit/tizen/20210608.012855^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5d58502453c080f99e21c2edb0c81468bf49eae5;p=platform%2Fupstream%2Fenlightenment.git e_input: fixed leak regarding ecore_device removal Change-Id: Ib5049eed67ad5b6f9600dbe3c5e67bcf2fba8d87 Signed-off-by: Sung-Jin Park --- diff --git a/src/bin/e_input_inputs.c b/src/bin/e_input_inputs.c index c33a8c3d3e..f9412cda27 100644 --- a/src/bin/e_input_inputs.c +++ b/src/bin/e_input_inputs.c @@ -224,19 +224,24 @@ _e_input_remove_ecore_device(E_Input_Evdev *edev, Ecore_Device_Class clas) if (!identifier) continue; if ((ecore_device_class_get(dev) == clas) && (!strcmp(identifier, edev->path))) { - if (edev->ecore_dev) edev->ecore_dev = NULL; + if (edev->ecore_dev) + { + ecore_device_unref(dev); + edev->ecore_dev = NULL; + } else if (edev->ecore_dev_list) { EINA_LIST_FOREACH_SAFE(edev->ecore_dev_list, ll, ll_next, data) { if (data == dev) { + ecore_device_unref(dev); edev->ecore_dev_list = eina_list_remove_list(edev->ecore_dev_list, ll); } } } - ecore_device_del(dev); _e_input_ecore_device_event(dev, EINA_FALSE); + ecore_device_del(dev); return EINA_TRUE; } } @@ -301,6 +306,7 @@ _e_input_device_remove(E_Input_Evdev *edev) WRN("Invalid device is left. name: %s, identifier: %s, clas: %s\n", ecore_device_name_get(data), ecore_device_description_get(data), _e_input_ecore_device_class_to_string(ecore_device_class_get(data))); + ecore_device_unref(data); ecore_device_del(data); } }