From d0c380ea684951a9e328bea6e4c019cf23840256 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 21 Mar 2014 14:11:57 -0500 Subject: wwan: disconnect modem signals when disposing NMDeviceModem --- src/devices/wwan/nm-device-modem.c | 11 ++++++----- 1 file 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; -- cgit v1.2.1