summaryrefslogtreecommitdiff
path: root/src/lib/eldbus/eldbus_model_object.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/eldbus/eldbus_model_object.c')
-rw-r--r--src/lib/eldbus/eldbus_model_object.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/lib/eldbus/eldbus_model_object.c b/src/lib/eldbus/eldbus_model_object.c
index 0cf462c380..a50c848391 100644
--- a/src/lib/eldbus/eldbus_model_object.c
+++ b/src/lib/eldbus/eldbus_model_object.c
@@ -18,7 +18,7 @@ static bool _eldbus_model_object_introspect(Eldbus_Model_Object_Data *, const ch
static void _eldbus_model_object_introspect_cb(void *, const Eldbus_Message *, Eldbus_Pending *);
static void _eldbus_model_object_connect(Eldbus_Model_Object_Data *);
static void _eldbus_model_object_disconnect(Eldbus_Model_Object_Data *);
-static void _eldbus_model_object_unload(Eldbus_Model_Object_Data *);
+static void _eldbus_model_object_clear(Eldbus_Model_Object_Data *);
static void _eldbus_model_object_introspect_nodes(Eldbus_Model_Object_Data *, const char *, Eina_List *);
static char *_eldbus_model_object_concatenate_path(const char *, const char *);
static void _eldbus_model_object_create_children(Eldbus_Model_Object_Data *, Eldbus_Object *, Eina_List *);
@@ -93,7 +93,7 @@ _eldbus_model_object_eo_base_destructor(Eo *obj, Eldbus_Model_Object_Data *pd)
eina_stringshare_del(pd->bus);
eina_stringshare_del(pd->path);
- _eldbus_model_object_unload(pd);
+ _eldbus_model_object_clear(pd);
eo_do_super(obj, MY_CLASS, eo_destructor());
}
@@ -131,7 +131,13 @@ _eldbus_model_object_efl_model_base_properties_load(Eo *obj, Eldbus_Model_Object
if (!pd->connection)
_eldbus_model_object_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);
}
@@ -162,9 +168,7 @@ _eldbus_model_object_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;
}
@@ -192,7 +196,7 @@ _eldbus_model_object_efl_model_base_unload(Eo *obj EINA_UNUSED, Eldbus_Model_Obj
{
DBG("(%p)", obj);
- _eldbus_model_object_unload(pd);
+ _eldbus_model_object_clear(pd);
efl_model_load_set(pd->obj, &pd->load, EFL_MODEL_LOAD_STATUS_UNLOADED);
}
@@ -363,13 +367,13 @@ _eldbus_model_object_disconnect(Eldbus_Model_Object_Data *pd)
}
static void
-_eldbus_model_object_unload(Eldbus_Model_Object_Data *pd)
+_eldbus_model_object_clear(Eldbus_Model_Object_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;