summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2015-01-06 12:22:25 +0100
committerThomas Haller <thaller@redhat.com>2015-01-08 15:46:21 +0100
commitd2e25135d5833faf621d1ed546c5db78ccc19f35 (patch)
tree03e351fff034ad9b747b937b9269e8add7bf100a
parent4e318360355398f3165b7e0d56419b405b6042d1 (diff)
downloadNetworkManager-d2e25135d5833faf621d1ed546c5db78ccc19f35.tar.gz
auth: destroy singleton instance of NMAuthManager on exit
-rw-r--r--src/nm-auth-manager.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/src/nm-auth-manager.c b/src/nm-auth-manager.c
index 2b929f6756..c1b352c92c 100644
--- a/src/nm-auth-manager.c
+++ b/src/nm-auth-manager.c
@@ -76,7 +76,8 @@ typedef struct {
#endif
} NMAuthManagerPrivate;
-static NMAuthManager *singleton_instance = NULL;
+NM_DEFINE_SINGLETON_DESTRUCTOR (NMAuthManager);
+NM_DEFINE_SINGLETON_WEAK_REF (NMAuthManager);
G_DEFINE_TYPE (NMAuthManager, nm_auth_manager, G_TYPE_OBJECT)
@@ -502,7 +503,10 @@ nm_auth_manager_setup (gboolean polkit_enabled)
NULL);
_LOGD ("set instance");
- return (singleton_instance = self);
+ singleton_instance = self;
+ nm_singleton_instance_weak_ref_register ();
+
+ return self;
}
/*****************************************************************************/
@@ -610,19 +614,6 @@ dispose (GObject *object)
}
static void
-finalize (GObject *object)
-{
- NMAuthManager* self = NM_AUTH_MANAGER (object);
-
- G_OBJECT_CLASS (nm_auth_manager_parent_class)->finalize (object);
-
- if (self == singleton_instance) {
- singleton_instance = NULL;
- _LOGD ("unset instance");
- }
-}
-
-static void
nm_auth_manager_class_init (NMAuthManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
@@ -633,7 +624,6 @@ nm_auth_manager_class_init (NMAuthManagerClass *klass)
object_class->set_property = set_property;
object_class->constructed = constructed;
object_class->dispose = dispose;
- object_class->finalize = finalize;
g_object_class_install_property
(object_class, PROP_POLKIT_ENABLED,