summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric.bail@free.fr>2019-11-15 09:39:38 -0800
committerStefan Schmidt <s.schmidt@samsung.com>2019-11-18 11:46:11 +0100
commit3f3b7259453a4519e40e90b15962331158928ac4 (patch)
treed57e350f801719154136b0c73062ddaa17faf93b
parent54217cda84b4019dfe8fd3428c7258f3ac58ae8c (diff)
downloadefl-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.c20
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"