forked from enlightenment/efl
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
This commit is contained in:
parent
54217cda84
commit
3f3b725945
|
@ -39,8 +39,6 @@ struct _Eldbus_Property_Promise
|
||||||
Eina_Stringshare *property;
|
Eina_Stringshare *property;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void _eldbus_model_proxy_property_set_data_free(Eldbus_Model_Proxy_Property_Set_Data *);
|
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_eldbus_model_proxy_load(Eldbus_Model_Proxy_Data *pd)
|
_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;
|
Eldbus_Model_Proxy_Property_Set_Data *sd = data;
|
||||||
|
|
||||||
sd->promise = NULL;
|
sd->promise = NULL;
|
||||||
|
eina_stringshare_del(sd->property);
|
||||||
|
eina_value_free(sd->value);
|
||||||
|
free(sd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eldbus_Pending *
|
static Eldbus_Pending *
|
||||||
|
@ -655,7 +656,6 @@ _eldbus_model_proxy_property_set_load_cb(void *data,
|
||||||
if (!signature || !properties)
|
if (!signature || !properties)
|
||||||
{
|
{
|
||||||
eina_promise_reject(set_data->promise, EFL_MODEL_ERROR_UNKNOWN);
|
eina_promise_reject(set_data->promise, EFL_MODEL_ERROR_UNKNOWN);
|
||||||
_eldbus_model_proxy_property_set_data_free(set_data);
|
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -688,7 +688,7 @@ _eldbus_model_proxy_property_set_cb(void *data,
|
||||||
{
|
{
|
||||||
ERR("%s: %s", error_name, error_text);
|
ERR("%s: %s", error_name, error_text);
|
||||||
eina_promise_reject(sd->promise, EFL_MODEL_ERROR_UNKNOWN);
|
eina_promise_reject(sd->promise, EFL_MODEL_ERROR_UNKNOWN);
|
||||||
goto end;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
value = eina_hash_find(pd->properties, sd->property);
|
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,
|
eina_promise_reject(sd->promise,
|
||||||
EFL_MODEL_ERROR_NOT_FOUND);
|
EFL_MODEL_ERROR_NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
|
||||||
_eldbus_model_proxy_property_set_data_free(sd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *
|
static const char *
|
||||||
|
@ -726,13 +723,4 @@ _eldbus_model_proxy_property_type_get(Eldbus_Model_Proxy_Data *pd,
|
||||||
return property_introspection->type;
|
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"
|
#include "eldbus_model_proxy.eo.c"
|
||||||
|
|
Loading…
Reference in New Issue