diff options
author | Cedric BAIL <cedric.bail@free.fr> | 2019-11-15 09:39:38 -0800 |
---|---|---|
committer | Stefan Schmidt <s.schmidt@samsung.com> | 2019-11-18 11:46:11 +0100 |
commit | 3f3b7259453a4519e40e90b15962331158928ac4 (patch) | |
tree | d57e350f801719154136b0c73062ddaa17faf93b | |
parent | 54217cda84b4019dfe8fd3428c7258f3ac58ae8c (diff) | |
download | efl-3f3b7259453a4519e40e90b15962331158928ac4.tar.gz |
eldbus: only free the data when the future is resolved or rejected.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D10684
-rw-r--r-- | src/lib/eldbus/eldbus_model_proxy.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/src/lib/eldbus/eldbus_model_proxy.c b/src/lib/eldbus/eldbus_model_proxy.c index bf1f8fb931..d0cbcb52af 100644 --- a/src/lib/eldbus/eldbus_model_proxy.c +++ b/src/lib/eldbus/eldbus_model_proxy.c @@ -39,8 +39,6 @@ struct _Eldbus_Property_Promise Eina_Stringshare *property; }; -static void _eldbus_model_proxy_property_set_data_free(Eldbus_Model_Proxy_Property_Set_Data *); - static Eina_Bool _eldbus_model_proxy_load(Eldbus_Model_Proxy_Data *pd) { @@ -236,6 +234,9 @@ _eldbus_model_proxy_cancel_cb(Efl_Loop_Consumer *consumer EINA_UNUSED, Eldbus_Model_Proxy_Property_Set_Data *sd = data; sd->promise = NULL; + eina_stringshare_del(sd->property); + eina_value_free(sd->value); + free(sd); } static Eldbus_Pending * @@ -655,7 +656,6 @@ _eldbus_model_proxy_property_set_load_cb(void *data, if (!signature || !properties) { eina_promise_reject(set_data->promise, EFL_MODEL_ERROR_UNKNOWN); - _eldbus_model_proxy_property_set_data_free(set_data); goto end; } @@ -688,7 +688,7 @@ _eldbus_model_proxy_property_set_cb(void *data, { ERR("%s: %s", error_name, error_text); eina_promise_reject(sd->promise, EFL_MODEL_ERROR_UNKNOWN); - goto end; + return; } value = eina_hash_find(pd->properties, sd->property); @@ -705,9 +705,6 @@ _eldbus_model_proxy_property_set_cb(void *data, eina_promise_reject(sd->promise, EFL_MODEL_ERROR_NOT_FOUND); } - - end: - _eldbus_model_proxy_property_set_data_free(sd); } static const char * @@ -726,13 +723,4 @@ _eldbus_model_proxy_property_type_get(Eldbus_Model_Proxy_Data *pd, return property_introspection->type; } -static void -_eldbus_model_proxy_property_set_data_free(Eldbus_Model_Proxy_Property_Set_Data *data) -{ - EINA_SAFETY_ON_NULL_RETURN(data); - eina_stringshare_del(data->property); - eina_value_free(data->value); - free(data); -} - #include "eldbus_model_proxy.eo.c" |