diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2020-04-14 11:29:46 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@samsung.com> | 2020-04-14 11:29:46 -0400 |
commit | bcc6c27d330beacc57854b323c93b1b6649dd446 (patch) | |
tree | 8f504598548cc6b98fe314097fa6b7a553c922ec | |
parent | 0a2db329c8c92500bb9fa7b0289da61fb74d0dc3 (diff) | |
download | efl-bcc6c27d330beacc57854b323c93b1b6649dd446.tar.gz |
ecore_evas_x: reject the promise instead of return
Summary:
this is needed in order to tell the API user that this is not going to
be completed.
Depends on D11699
Reviewers: zmike, raster, stefan_schmidt
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11700
-rw-r--r-- | src/modules/ecore_evas/engines/x/ecore_evas_x.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c b/src/modules/ecore_evas/engines/x/ecore_evas_x.c index 5730037e11..a107f66a6d 100644 --- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c +++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c @@ -3862,12 +3862,7 @@ _deliver_content(Ecore_Evas *ee, Ecore_Evas_Engine_Data_X11 *edata, Ecore_Evas_S Eina_Content *result = NULL; Eina_Stringshare *mime_type = _decrypt_type(edata->selection_data[selection].requested_type); - if (!ev->data) - { - ERR("delivering NULL content"); - return; - } - + EINA_SAFETY_ON_NULL_GOTO(ev->data, err); if (eina_streq(mime_type, "text/uri-list")) { Ecore_X_Selection_Data_Files *files = ev->data; @@ -3918,7 +3913,7 @@ _deliver_content(Ecore_Evas *ee, Ecore_Evas_Engine_Data_X11 *edata, Ecore_Evas_S Ecore_X_Selection_Data *x11_data = ev->data; result = _create_deliveriy_content(x11_data->length, x11_data->data, mime_type); } - EINA_SAFETY_ON_NULL_RETURN(result); + EINA_SAFETY_ON_NULL_GOTO(result, err); //ensure that we deliver the correct type, we might have choosen a convertion before if (edata->selection_data[selection].later_conversion != mime_type) @@ -3934,6 +3929,12 @@ _deliver_content(Ecore_Evas *ee, Ecore_Evas_Engine_Data_X11 *edata, Ecore_Evas_S if (selection == ECORE_EVAS_SELECTION_BUFFER_DRAG_AND_DROP_BUFFER) ecore_x_dnd_send_finished(); + return; +err: + eina_promise_reject(edata->selection_data[selection].delivery, ecore_evas_no_selection); + + if (selection == ECORE_EVAS_SELECTION_BUFFER_DRAG_AND_DROP_BUFFER) + ecore_x_dnd_send_finished(); } static Eina_Bool |