lucas pushed a commit to branch master.

commit 12855e5fe77eb22104309d7db6855663e02fdb70
Author: José Roberto de Souza <[email protected]>
Date:   Sat Mar 23 14:43:05 2013 -0300

    eldbus: Fix interface_unregister()
---
 src/lib/eldbus/eldbus_service.c | 13 ++++---------
 src/lib/eldbus/eldbus_service.h |  4 ++--
 2 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/src/lib/eldbus/eldbus_service.c b/src/lib/eldbus/eldbus_service.c
index b42b16e..98f76de 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)
 EAPI void
 eldbus_service_interface_unregister(Eldbus_Service_Interface *iface)
 {
+   Eldbus_Service_Object *obj;
    ELDBUS_SERVICE_INTERFACE_CHECK(iface);
-   if (!eina_hash_find(iface->obj->interfaces, objmanager->name))
-     {
-        //properties + introspectable + iface that user wants unregister
-        if (eina_hash_population(iface->obj->interfaces) < 4)
-          eldbus_service_object_unregister(iface);
-        return;
-     }
-   eina_hash_del(iface->obj->interfaces, NULL, iface);
-   iface->obj->introspection_dirty = EINA_TRUE;
+   obj = iface->obj;
+   eina_hash_del(obj->interfaces, NULL, iface);
    _interface_free(iface);
+   obj->introspection_dirty = EINA_TRUE;
 }
 
 EAPI void
diff --git a/src/lib/eldbus/eldbus_service.h b/src/lib/eldbus/eldbus_service.h
index f36903b..5fa839d 100644
--- a/src/lib/eldbus/eldbus_service.h
+++ b/src/lib/eldbus/eldbus_service.h
@@ -110,8 +110,8 @@ EAPI Eldbus_Service_Interface 
*eldbus_service_interface_register(Eldbus_Connecti
 
 /**
  * @brief Unregister a interface.
- * If this is the last interface of the object path, the object path will be
- * removed too.
+ * Note: This doesn't unregister the object path if interface count reaches 0.
+ * Use eldbus_service_object_unregister() to unregister the object.
  */
 EAPI void eldbus_service_interface_unregister(Eldbus_Service_Interface *iface) 
EINA_ARG_NONNULL(1);
 

-- 

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2

Reply via email to