summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2014-03-21 14:11:57 -0500
committerDan Williams <dcbw@redhat.com>2014-03-21 17:54:10 -0500
commitd0c380ea684951a9e328bea6e4c019cf23840256 (patch)
tree9bc812bf243304abdc616af82d172576ca24b213
parentf8b4ee04ba6c03f54cf41d96a13f28905ff8aaa9 (diff)
downloadNetworkManager-d0c380ea684951a9e328bea6e4c019cf23840256.tar.gz
wwan: disconnect modem signals when disposing NMDeviceModem
-rw-r--r--src/devices/wwan/nm-device-modem.c11
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;