diff options
| author | Aron Xu <aron@debian.org> | 2016-12-20 20:07:38 +0800 |
|---|---|---|
| committer | Aron Xu <aron@debian.org> | 2016-12-20 20:07:38 +0800 |
| commit | 3bf5cabfc7d7a3c7fdb4e2bc3d771d2a07db8bc0 (patch) | |
| tree | 1ac587c7e73af842b847599dc29b44430bf112ff /libnm/nm-manager.c | |
| parent | 1836daa45f4f0d8d0b791ed020774b915e9dd92d (diff) | |
| parent | 45cb5bb3c0e6edb887cf69b417fcaf7053814a9b (diff) | |
Merge tag 'upstream/1.4.4'
Upstream version 1.4.4
Diffstat (limited to 'libnm/nm-manager.c')
| -rw-r--r-- | libnm/nm-manager.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/libnm/nm-manager.c b/libnm/nm-manager.c index c3d0c51d..dc14f83d 100644 --- a/libnm/nm-manager.c +++ b/libnm/nm-manager.c @@ -1201,12 +1201,11 @@ free_devices (NMManager *manager, gboolean in_dispose) if (in_dispose) { priv->devices = NULL; priv->all_devices = NULL; - return; + } else { + priv->devices = g_ptr_array_new_with_free_func (g_object_unref); + priv->all_devices = g_ptr_array_new_with_free_func (g_object_unref); } - priv->devices = g_ptr_array_new_with_free_func (g_object_unref); - priv->all_devices = g_ptr_array_new_with_free_func (g_object_unref); - if (all_devices && all_devices->len > 0) devices = all_devices; else if (real_devices && real_devices->len > 0) @@ -1222,14 +1221,23 @@ free_devices (NMManager *manager, gboolean in_dispose) goto next; } } - g_signal_emit (manager, signals[DEVICE_REMOVED], 0, d); + if (in_dispose) + device_removed (manager, d); + else + g_signal_emit (manager, signals[DEVICE_REMOVED], 0, d); next: ; } } if (devices) { - for (i = 0; i < devices->len; i++) - g_signal_emit (manager, signals[DEVICE_REMOVED], 0, devices->pdata[i]); + for (i = 0; i < devices->len; i++) { + NMDevice *d = devices->pdata[i]; + + if (in_dispose) + device_removed (manager, d); + else + g_signal_emit (manager, signals[DEVICE_REMOVED], 0, d); + } } } |