diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2020-03-09 16:59:33 +0100 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2020-03-09 17:10:40 +0100 |
commit | fa988becd275853479a0dbfed521c0161c727a28 (patch) | |
tree | 0436a0122c80d1a26d6efa279167a40325dc371f | |
parent | 6524b0a155e774c5da93547e9ac052f478e98a92 (diff) | |
download | efl-fa988becd275853479a0dbfed521c0161c727a28.tar.gz |
efl_ui_textbox: dont leak a array when no type is available
this fixes a possible leak.
-rw-r--r-- | src/lib/elementary/efl_ui_textbox.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/lib/elementary/efl_ui_textbox.c b/src/lib/elementary/efl_ui_textbox.c index 3ffa3e096a..11f79b23fd 100644 --- a/src/lib/elementary/efl_ui_textbox.c +++ b/src/lib/elementary/efl_ui_textbox.c @@ -529,19 +529,21 @@ static void _dnd_drop_cb(void *data EINA_UNUSED, const Efl_Event *ev) { Efl_Ui_Drop_Event *drop = ev->info; - Eina_Future *future; + Eina_Array *types; EFL_UI_TEXT_DATA_GET(ev->object, sd); types = _figure_out_types(ev->object, sd); - if (!_accepting_drops(ev->object, sd, drop->available_types)) - return; + if (_accepting_drops(ev->object, sd, drop->available_types)) + { + Eina_Future *future; - future = efl_ui_dnd_drop_data_get(ev->object, 0, eina_array_iterator_new(types)); - eina_array_free(types); + future = efl_ui_dnd_drop_data_get(ev->object, evas_device_seat_id_get(evas_default_device_get(evas_object_evas_get(ev->object), EFL_INPUT_DEVICE_TYPE_SEAT)), eina_array_iterator_new(types)); + efl_future_then(ev->object, future, _selection_data_cb); + } - efl_future_then(ev->object, future, _selection_data_cb); + eina_array_free(types); } /* we can't reuse layout's here, because it's on entry_edje only */ |