[libsecret/wip/dueno/backend: 3/5] secret-service: Move instance caching logic to init vfunc
- From: Daiki Ueno <dueno src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsecret/wip/dueno/backend: 3/5] secret-service: Move instance caching logic to init vfunc
- Date: Mon, 1 Jul 2019 16:32:12 +0000 (UTC)
commit deb5de11d95702036d07add9904e7f90f37c42fe
Author: Daiki Ueno <dueno src gnome org>
Date: Mon Jul 1 18:26:17 2019 +0200
secret-service: Move instance caching logic to init vfunc
This allows to keep track of the singleton instance even if the
instance is directly created through GInitable.
libsecret/secret-service.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
---
diff --git a/libsecret/secret-service.c b/libsecret/secret-service.c
index 2c3ca31..490991a 100644
--- a/libsecret/secret-service.c
+++ b/libsecret/secret-service.c
@@ -708,7 +708,12 @@ secret_service_initable_init (GInitable *initable,
return FALSE;
self = SECRET_SERVICE (initable);
- return service_ensure_for_flags_sync (self, self->pv->init_flags, cancellable, error);
+ if (!service_ensure_for_flags_sync (self, self->pv->init_flags,
+ cancellable, error))
+ return FALSE;
+
+ service_cache_instance (self);
+ return TRUE;
}
static void
@@ -774,6 +779,7 @@ secret_service_async_initable_init_finish (GAsyncInitable *initable,
return FALSE;
}
+ service_cache_instance (SECRET_SERVICE (initable));
return TRUE;
}
@@ -1030,8 +1036,6 @@ secret_service_get_finish (GAsyncResult *result,
/* Creating a whole new service */
} else {
service = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), result, error);
- if (service)
- service_cache_instance (SECRET_SERVICE (service));
}
if (service == NULL)
@@ -1071,10 +1075,6 @@ secret_service_get_sync (SecretServiceFlags flags,
service = g_initable_new (SECRET_TYPE_SERVICE, cancellable, error,
"flags", flags,
NULL);
-
- if (service != NULL)
- service_cache_instance (service);
-
} else {
if (!service_ensure_for_flags_sync (service, flags, cancellable, error)) {
g_object_unref (service);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]