diff options
author | Thomas Haller <thaller@redhat.com> | 2015-01-06 12:22:25 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2015-01-12 12:10:03 +0100 |
commit | e5a82e56980d17be7b6dc092c2eb8b062eeb6903 (patch) | |
tree | 9ffae8c017ba6640bdb5067c798d905d98e79428 /src/nm-auth-manager.c | |
parent | eecc440351affdb742c251c25cb30bad31bbe611 (diff) | |
download | NetworkManager-e5a82e56980d17be7b6dc092c2eb8b062eeb6903.tar.gz |
auth: destroy singleton instance of NMAuthManager on exit
Diffstat (limited to 'src/nm-auth-manager.c')
-rw-r--r-- | src/nm-auth-manager.c | 22 |
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, |