diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2016-11-14 19:54:38 +0100 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2016-11-14 19:55:00 +0100 |
commit | 75b5ddaa4af73e9e8d3219d2d1336a02deaf2068 (patch) | |
tree | 02e1815c1afcb986bdc364b0e110f237e33698f1 | |
parent | 27471dc9404bfff7dce3516c15ccbf3941c2a28a (diff) | |
download | NetworkManager-75b5ddaa4af73e9e8d3219d2d1336a02deaf2068.tar.gz |
libnm/client: unref all the objects on dispose
We created them, if we didn't unreference it they would be leaked.
-rw-r--r-- | libnm/nm-client.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libnm/nm-client.c b/libnm/nm-client.c index 14f0d38a2a..543f0b8726 100644 --- a/libnm/nm-client.c +++ b/libnm/nm-client.c @@ -2416,6 +2416,14 @@ dispose (GObject *object) } if (priv->object_manager) { + GList *objects, *iter; + + /* Unhook the NM objects. */ + objects = g_dbus_object_manager_get_objects (priv->object_manager); + for (iter = objects; iter; iter = iter->next) + g_object_set_qdata (G_OBJECT (iter->data), _nm_object_obj_nm_quark (), NULL); + g_list_free_full (objects, g_object_unref); + g_signal_handlers_disconnect_by_data (priv->object_manager, object); g_clear_object (&priv->object_manager); } |