]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Fix potential crash in usersmodel
authorDavid Edmundson <david@davidedmundson.co.uk>
Sat, 26 Nov 2011 12:24:49 +0000 (12:24 +0000)
committerDavid Edmundson <david@davidedmundson.co.uk>
Sat, 26 Nov 2011 12:24:49 +0000 (12:24 +0000)
liblightdm-qt/usersmodel.cpp

index a23c1cac275aa8d8217264482666db7883f73aaf..b76426fcdab37fdf63d174ccb76fb6690a39611e 100644 (file)
@@ -43,6 +43,7 @@ namespace QLightDM {
 class UsersModelPrivate {
 public:
     UsersModelPrivate(UsersModel *parent);
+    virtual ~UsersModelPrivate();
     QList<UserItem> users;
 
     protected:
@@ -64,6 +65,11 @@ UsersModelPrivate::UsersModelPrivate(UsersModel* parent) :
     g_type_init();
 }
 
+UsersModelPrivate::~UsersModelPrivate()
+{
+    g_signal_handlers_disconnect_by_func(lightdm_user_list_get_instance(), NULL, this);
+}
+
 void UsersModelPrivate::loadUsers()
 {
     Q_Q(UsersModel);
@@ -94,9 +100,10 @@ void UsersModelPrivate::loadUsers()
     g_signal_connect(lightdm_user_list_get_instance(), "user-added", G_CALLBACK (cb_userAdded), this);
     g_signal_connect(lightdm_user_list_get_instance(), "user-changed", G_CALLBACK (cb_userChanged), this);
     g_signal_connect(lightdm_user_list_get_instance(), "user-removed", G_CALLBACK (cb_userRemoved), this);
-
 }
 
+
+
 void UsersModelPrivate::cb_userAdded(LightDMUserList *user_list, LightDMUser *ldmUser, gpointer data)
 {
     Q_UNUSED(user_list)