[gnome-keyring] [dbus] Ref unlock object while performing async operation.



commit 56e02cccfa6f6b33ad29d78e691be94fce61f5ef
Author: Stef Walter <stef memberwebs com>
Date:   Fri Sep 10 02:51:16 2010 +0000

    [dbus] Ref unlock object while performing async operation.
    
    Reference the GkdSecretUnlock object while performing an async
    operation, and unref in the callback.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=629181

 daemon/dbus/gkd-secret-unlock.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
---
diff --git a/daemon/dbus/gkd-secret-unlock.c b/daemon/dbus/gkd-secret-unlock.c
index bf1f5d0..d3b161c 100644
--- a/daemon/dbus/gkd-secret-unlock.c
+++ b/daemon/dbus/gkd-secret-unlock.c
@@ -187,6 +187,9 @@ on_unlock_complete (GObject *object, GAsyncResult *res, gpointer user_data)
 	}
 
 	g_clear_error (&error);
+
+	/* refed for async call */
+	g_object_unref (self);
 }
 
 static void
@@ -231,7 +234,8 @@ perform_next_unlock (GkdSecretUnlock *self)
 		gp11_attributes_add_data (template, CKA_VALUE, NULL, 0);
 
 		session = gkd_secret_service_get_pkcs11_session (self->service, self->caller);
-		gp11_session_create_object_async (session, template, self->cancellable, on_unlock_complete, self);
+		gp11_session_create_object_async (session, template, self->cancellable, on_unlock_complete,
+		                                  g_object_ref (self));
 		gp11_attributes_unref (template);
 
 		g_object_unref (collection);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]