From 833168c3cf2fc2e805c1133de9bd10dfe9cb11b9 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 13 Apr 2016 13:01:33 +0200 Subject: [PATCH] fdmanager: decrement object refcount correctly The object needs to be decremented each time a client releases it. --- pinos/client/fdmanager.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pinos/client/fdmanager.c b/pinos/client/fdmanager.c index d984b956f..3175d780c 100644 --- a/pinos/client/fdmanager.c +++ b/pinos/client/fdmanager.c @@ -64,7 +64,6 @@ static void object_id_free (ObjectId *oid) { g_assert (oid->refcount == 0); - oid->notify (oid->obj); g_slice_free (ObjectId, oid); } @@ -236,6 +235,8 @@ pinos_fd_manager_remove (PinosFdManager *manager, if (find) { cids->ids = g_list_delete_link (cids->ids, find); + + oid->notify (oid->obj); oid->refcount--; if (oid->refcount == 0) { g_hash_table_remove (priv->object_ids, GINT_TO_POINTER (id)); @@ -253,6 +254,7 @@ remove_id (ObjectId *oid, PinosFdManager *manager) { PinosFdManagerPrivate *priv = manager->priv; + oid->notify (oid->obj); oid->refcount--; if (oid->refcount == 0) { g_hash_table_remove (priv->object_ids, GINT_TO_POINTER (oid->id));