From f684c7130a71a2112eac7ee8fe6b952a667279c7 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Wed, 4 Sep 2019 14:16:08 +0200 Subject: [PATCH] port-serial: don't assume connected_id signal handler is always connected If the signal is automatically disconnected during object disposal, we shouldn't explicitly try to disconnect it ourselves during finalize(). Reported by: Lubomir Rintel --- src/mm-port-serial.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mm-port-serial.c b/src/mm-port-serial.c index 4067979c..1c2fd2d3 100644 --- a/src/mm-port-serial.c +++ b/src/mm-port-serial.c @@ -1387,7 +1387,10 @@ _close_internal (MMPortSerial *self, gboolean force) return; if (self->priv->connected_id) { - g_signal_handler_disconnect (self, self->priv->connected_id); + /* Don't assume it's always connected, because it may be automatically connected during + * object disposal, and this method is also called in finalize() */ + if (g_signal_handler_is_connected (self, self->priv->connected_id)) + g_signal_handler_disconnect (self, self->priv->connected_id); self->priv->connected_id = 0; }