auth: destroy singleton instance of NMAuthManager on exit

This commit is contained in:
Thomas Haller 2015-01-06 12:22:25 +01:00
parent eecc440351
commit e5a82e5698

View file

@ -76,7 +76,8 @@ typedef struct {
#endif #endif
} NMAuthManagerPrivate; } 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) G_DEFINE_TYPE (NMAuthManager, nm_auth_manager, G_TYPE_OBJECT)
@ -502,7 +503,10 @@ nm_auth_manager_setup (gboolean polkit_enabled)
NULL); NULL);
_LOGD ("set instance"); _LOGD ("set instance");
return (singleton_instance = self); singleton_instance = self;
nm_singleton_instance_weak_ref_register ();
return self;
} }
/*****************************************************************************/ /*****************************************************************************/
@ -609,19 +613,6 @@ dispose (GObject *object)
G_OBJECT_CLASS (nm_auth_manager_parent_class)->dispose (object); G_OBJECT_CLASS (nm_auth_manager_parent_class)->dispose (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 static void
nm_auth_manager_class_init (NMAuthManagerClass *klass) nm_auth_manager_class_init (NMAuthManagerClass *klass)
{ {
@ -633,7 +624,6 @@ nm_auth_manager_class_init (NMAuthManagerClass *klass)
object_class->set_property = set_property; object_class->set_property = set_property;
object_class->constructed = constructed; object_class->constructed = constructed;
object_class->dispose = dispose; object_class->dispose = dispose;
object_class->finalize = finalize;
g_object_class_install_property g_object_class_install_property
(object_class, PROP_POLKIT_ENABLED, (object_class, PROP_POLKIT_ENABLED,