diff options
author | Dan Williams <dcbw@redhat.com> | 2014-03-21 14:11:57 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2014-03-21 17:54:10 -0500 |
commit | d0c380ea684951a9e328bea6e4c019cf23840256 (patch) | |
tree | 9bc812bf243304abdc616af82d172576ca24b213 | |
parent | f8b4ee04ba6c03f54cf41d96a13f28905ff8aaa9 (diff) | |
download | NetworkManager-d0c380ea684951a9e328bea6e4c019cf23840256.tar.gz |
wwan: disconnect modem signals when disposing NMDeviceModem
-rw-r--r-- | src/devices/wwan/nm-device-modem.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/devices/wwan/nm-device-modem.c b/src/devices/wwan/nm-device-modem.c index d731c809a9..39cc06f3f7 100644 --- a/src/devices/wwan/nm-device-modem.c +++ b/src/devices/wwan/nm-device-modem.c @@ -468,14 +468,15 @@ get_property (GObject *object, guint prop_id, } static void -finalize (GObject *object) +dispose (GObject *object) { NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (object); - g_object_unref (priv->modem); - priv->modem = NULL; + if (priv->modem) + g_signal_handlers_disconnect_by_data (priv->modem, NM_DEVICE_MODEM (object)); + g_clear_object (&priv->modem); - G_OBJECT_CLASS (nm_device_modem_parent_class)->finalize (object); + G_OBJECT_CLASS (nm_device_modem_parent_class)->dispose (object); } static void @@ -487,7 +488,7 @@ nm_device_modem_class_init (NMDeviceModemClass *mclass) g_type_class_add_private (object_class, sizeof (NMDeviceModemPrivate)); /* Virtual methods */ - object_class->finalize = finalize; + object_class->dispose = dispose; object_class->get_property = get_property; object_class->set_property = set_property; |