bearer: check if signal handler is connected before trying to disconnect it

Avoids warnings like:
GLib-GObject-WARNING **: gsignal.c:2576: instance `0x78624028' has no handler with id `148'
This commit is contained in:
Aleksander Morgado
2012-12-12 12:55:33 +01:00
parent c43c8958d0
commit f20922ba9d

View File

@@ -320,15 +320,18 @@ reset_signal_handlers (MMBearer *self)
return; return;
if (self->priv->id_3gpp_registration_change) { if (self->priv->id_3gpp_registration_change) {
g_signal_handler_disconnect (self->priv->modem, self->priv->id_3gpp_registration_change); if (g_signal_handler_is_connected (self->priv->modem, self->priv->id_3gpp_registration_change))
g_signal_handler_disconnect (self->priv->modem, self->priv->id_3gpp_registration_change);
self->priv->id_3gpp_registration_change = 0; self->priv->id_3gpp_registration_change = 0;
} }
if (self->priv->id_cdma1x_registration_change) { if (self->priv->id_cdma1x_registration_change) {
g_signal_handler_disconnect (self->priv->modem, self->priv->id_cdma1x_registration_change); if (g_signal_handler_is_connected (self->priv->modem, self->priv->id_cdma1x_registration_change))
g_signal_handler_disconnect (self->priv->modem, self->priv->id_cdma1x_registration_change);
self->priv->id_cdma1x_registration_change = 0; self->priv->id_cdma1x_registration_change = 0;
} }
if (self->priv->id_evdo_registration_change) { if (self->priv->id_evdo_registration_change) {
g_signal_handler_disconnect (self->priv->modem, self->priv->id_evdo_registration_change); if (g_signal_handler_is_connected (self->priv->modem, self->priv->id_evdo_registration_change))
g_signal_handler_disconnect (self->priv->modem, self->priv->id_evdo_registration_change);
self->priv->id_evdo_registration_change = 0; self->priv->id_evdo_registration_change = 0;
} }
} }