diff --git a/src/lib/eldbus/eldbus_proxy.c b/src/lib/eldbus/eldbus_proxy.c index 4d76a56090..f43265a4da 100644 --- a/src/lib/eldbus/eldbus_proxy.c +++ b/src/lib/eldbus/eldbus_proxy.c @@ -317,18 +317,15 @@ _property_changed_iter(void *data, const void *key, Eldbus_Message_Iter *var) eina_value_struct_value_get(st_value, "arg0", &stack_value); value = eina_hash_find(proxy->props, skey); - if (value) + if (!value) { - eina_value_flush(value); - eina_value_copy(&stack_value, value); - } - else - { - value = calloc(1, sizeof(Eina_Value)); - eina_value_copy(&stack_value, value); + value = eina_value_new(eina_value_type_get(&stack_value)); eina_hash_add(proxy->props, skey, value); } + eina_value_flush(value); + eina_value_copy(&stack_value, value); + event.name = skey; event.value = value; event.proxy = proxy;