raster pushed a commit to branch master.

commit bdd57af1136dd6c81244c15b0456ec06d10fa59e
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Thu Jul 4 08:41:45 2013 +0900

    eldbus - only unref client conns that are not null after dispatch
---
 src/lib/eldbus/eldbus_core.c          | 3 ++-
 src/lib/ethumb_client/ethumb_client.c | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/lib/eldbus/eldbus_core.c b/src/lib/eldbus/eldbus_core.c
index 040fe4c..a92d1e2 100644
--- a/src/lib/eldbus/eldbus_core.c
+++ b/src/lib/eldbus/eldbus_core.c
@@ -772,7 +772,8 @@ eldbus_idler(void *data)
    dbus_connection_ref(conn->dbus_conn);
    DBG("Connection@%p: Dispatching", conn);
    dbus_connection_dispatch(conn->dbus_conn);
-   dbus_connection_unref(conn->dbus_conn);
+   // add the if check as dispact may set conn->dbus_conn to NULL in a cb
+   if (conn->dbus_conn) dbus_connection_unref(conn->dbus_conn);
    return ECORE_CALLBACK_RENEW;
 }
 
diff --git a/src/lib/ethumb_client/ethumb_client.c 
b/src/lib/ethumb_client/ethumb_client.c
index cbd3c96..3d62fa1 100644
--- a/src/lib/ethumb_client/ethumb_client.c
+++ b/src/lib/ethumb_client/ethumb_client.c
@@ -238,7 +238,7 @@ end_connection:
    obj = eldbus_proxy_object_get(client->proxy);
    eldbus_proxy_unref(client->proxy);
    eldbus_object_unref(obj);
-   eldbus_connection_unref(client->conn);
+   if (client->conn) eldbus_connection_unref(client->conn);
 
    if (client->connect.free_data)
      client->connect.free_data(client->connect.data);

-- 

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev

Reply via email to