diff options
author | Thomas Haller <thaller@redhat.com> | 2015-01-06 12:22:25 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2015-01-08 15:46:21 +0100 |
commit | d2e25135d5833faf621d1ed546c5db78ccc19f35 (patch) | |
tree | 03e351fff034ad9b747b937b9269e8add7bf100a | |
parent | 4e318360355398f3165b7e0d56419b405b6042d1 (diff) | |
download | NetworkManager-d2e25135d5833faf621d1ed546c5db78ccc19f35.tar.gz |
auth: destroy singleton instance of NMAuthManager on exit
-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, |