diff options
author | Eduardo Lima (Etrunko) <eduardo.lima@intel.com> | 2013-05-23 16:36:29 -0300 |
---|---|---|
committer | Eduardo Lima (Etrunko) <eduardo.lima@intel.com> | 2013-05-23 17:15:15 -0300 |
commit | eca8b6bb7c0dcbb901b6bc146a85a6fe70709207 (patch) | |
tree | 01d7306402b356114bae208c88e4c9c78c7c4318 | |
parent | 3c9856f9e0095139ebd7dbdd860025a8dfb2a705 (diff) | |
download | efl-eca8b6bb7c0dcbb901b6bc146a85a6fe70709207.tar.gz |
eldbus: New internal function _eldbus_connection_free()
This is actually a split on the _eldbus_connection_unref() function, that
will be called either when the refcount reaches 0 or to force the deletion
of an Eldus_Connection.
The second use case will be contemplated in a following patch.
Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
-rw-r--r-- | src/lib/eldbus/eldbus_core.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/lib/eldbus/eldbus_core.c b/src/lib/eldbus/eldbus_core.c index c2b3b57b8f..4f7d9c6bcb 100644 --- a/src/lib/eldbus/eldbus_core.c +++ b/src/lib/eldbus/eldbus_core.c @@ -1017,7 +1017,7 @@ eldbus_connection_ref(Eldbus_Connection *conn) } static void -_eldbus_connection_unref(Eldbus_Connection *conn) +_eldbus_connection_free(Eldbus_Connection *conn) { unsigned int i; Eldbus_Handler_Data *fd_handler; @@ -1030,11 +1030,6 @@ _eldbus_connection_unref(Eldbus_Connection *conn) Eina_Array *cns; const char *name; - DBG("Connection %p: unref (currently at %d refs)", - conn, conn->refcount); - - if (--conn->refcount > 0) return; - DBG("Freeing connection %p", conn); _eldbus_connection_event_callback_call @@ -1131,6 +1126,16 @@ _eldbus_connection_unref(Eldbus_Connection *conn) free(conn); } +static void +_eldbus_connection_unref(Eldbus_Connection *conn) +{ + DBG("Connection %p: unref (currently at %d refs)", + conn, conn->refcount); + + if (--conn->refcount > 0) return; + _eldbus_connection_free(conn); +} + EAPI void eldbus_connection_unref(Eldbus_Connection *conn) { |