summaryrefslogtreecommitdiff
path: root/src/lib/eldbus/eldbus_service.c
diff options
context:
space:
mode:
authorJosé Roberto de Souza <zehortigoza@gmail.com>2013-03-23 14:43:05 -0300
committerLucas De Marchi <lucas.de.marchi@gmail.com>2013-05-04 10:38:55 -0300
commit12855e5fe77eb22104309d7db6855663e02fdb70 (patch)
treedf68924cb408b88655be37ccaf4facf8fe435c63 /src/lib/eldbus/eldbus_service.c
parent9e4dc299a73d81cfa2c0fa32db1d2179ade21617 (diff)
eldbus: Fix interface_unregister()
Diffstat (limited to 'src/lib/eldbus/eldbus_service.c')
-rw-r--r--src/lib/eldbus/eldbus_service.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/lib/eldbus/eldbus_service.c b/src/lib/eldbus/eldbus_service.c
index b42b16e0b7..98f76de33b 100644
--- a/src/lib/eldbus/eldbus_service.c
+++ b/src/lib/eldbus/eldbus_service.c
@@ -1082,17 +1082,12 @@ _on_connection_free(void *data, const void *dead_pointer EINA_UNUSED)
1082EAPI void 1082EAPI void
1083eldbus_service_interface_unregister(Eldbus_Service_Interface *iface) 1083eldbus_service_interface_unregister(Eldbus_Service_Interface *iface)
1084{ 1084{
1085 Eldbus_Service_Object *obj;
1085 ELDBUS_SERVICE_INTERFACE_CHECK(iface); 1086 ELDBUS_SERVICE_INTERFACE_CHECK(iface);
1086 if (!eina_hash_find(iface->obj->interfaces, objmanager->name)) 1087 obj = iface->obj;
1087 { 1088 eina_hash_del(obj->interfaces, NULL, iface);
1088 //properties + introspectable + iface that user wants unregister
1089 if (eina_hash_population(iface->obj->interfaces) < 4)
1090 eldbus_service_object_unregister(iface);
1091 return;
1092 }
1093 eina_hash_del(iface->obj->interfaces, NULL, iface);
1094 iface->obj->introspection_dirty = EINA_TRUE;
1095 _interface_free(iface); 1089 _interface_free(iface);
1090 obj->introspection_dirty = EINA_TRUE;
1096} 1091}
1097 1092
1098EAPI void 1093EAPI void