diff options
Diffstat (limited to 'src/lib/eldbus/eldbus_model_connection.c')
-rw-r--r-- | src/lib/eldbus/eldbus_model_connection.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/lib/eldbus/eldbus_model_connection.c b/src/lib/eldbus/eldbus_model_connection.c index 427c0109b9..72173b695e 100644 --- a/src/lib/eldbus/eldbus_model_connection.c +++ b/src/lib/eldbus/eldbus_model_connection.c @@ -15,7 +15,7 @@ static void _eldbus_model_connection_efl_model_base_children_load(Eo *, Eldbus_M static void _eldbus_model_connection_names_list_cb(void *, const Eldbus_Message *, Eldbus_Pending *); static void _eldbus_model_connection_connect(Eldbus_Model_Connection_Data *); static void _eldbus_model_connection_disconnect(Eldbus_Model_Connection_Data *); -static void _eldbus_model_connection_unload(Eldbus_Model_Connection_Data *); +static void _eldbus_model_connection_clear(Eldbus_Model_Connection_Data *); static Eo_Base* _eldbus_model_connection_eo_base_constructor(Eo *obj, Eldbus_Model_Connection_Data *pd) @@ -58,7 +58,7 @@ _eldbus_model_connection_eo_base_destructor(Eo *obj, Eldbus_Model_Connection_Dat eina_stringshare_del(pd->address); - _eldbus_model_connection_unload(pd); + _eldbus_model_connection_clear(pd); eo_do_super(obj, MY_CLASS, eo_destructor()); } @@ -96,7 +96,13 @@ _eldbus_model_connection_efl_model_base_properties_load(Eo *obj, Eldbus_Model_Co if (!pd->connection) _eldbus_model_connection_connect(pd); - pd->unique_name = eina_stringshare_add(eldbus_connection_unique_name_get(pd->connection)); + pd->unique_name = eina_value_new(EINA_VALUE_TYPE_STRING); + EINA_SAFETY_ON_NULL_RETURN(pd->unique_name); + + const char *unique_name = eldbus_connection_unique_name_get(pd->connection); + Eina_Bool ret = eina_value_set(pd->unique_name, unique_name); + EINA_SAFETY_ON_FALSE_RETURN(ret); + efl_model_load_set(pd->obj, &pd->load, EFL_MODEL_LOAD_STATUS_LOADED_PROPERTIES); } @@ -127,9 +133,7 @@ _eldbus_model_connection_efl_model_base_property_get(Eo *obj EINA_UNUSED, if (strcmp(property, UNIQUE_NAME_PROPERTY) != 0) return EFL_MODEL_LOAD_STATUS_ERROR; - eina_value_setup(value, EINA_VALUE_TYPE_STRING); - eina_value_set(value, pd->unique_name); - + *value = pd->unique_name; return pd->load.status; } @@ -157,7 +161,7 @@ _eldbus_model_connection_efl_model_base_unload(Eo *obj EINA_UNUSED, Eldbus_Model { DBG("(%p)", obj); - _eldbus_model_connection_unload(pd); + _eldbus_model_connection_clear(pd); efl_model_load_set(pd->obj, &pd->load, EFL_MODEL_LOAD_STATUS_UNLOADED); } @@ -296,13 +300,13 @@ _eldbus_model_connection_disconnect(Eldbus_Model_Connection_Data *pd) } static void -_eldbus_model_connection_unload(Eldbus_Model_Connection_Data *pd) +_eldbus_model_connection_clear(Eldbus_Model_Connection_Data *pd) { EINA_SAFETY_ON_NULL_RETURN(pd); if (!pd->connection) return; - eina_stringshare_del(pd->unique_name); + eina_value_free(pd->unique_name); pd->unique_name = NULL; Eo *child; |