summaryrefslogtreecommitdiff
path: root/src/lib/eldbus/eldbus_model_connection.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/eldbus/eldbus_model_connection.c')
-rw-r--r--src/lib/eldbus/eldbus_model_connection.c22
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;