From ef1d5b5ee03161a5a1f563e2a985afd93614ca10 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Mon, 29 Jul 2019 17:24:49 +0200 Subject: [PATCH 1/5] gnetworkmonitornm: Remove unneeded ";" in G_DEFINE_INTERFACE_WITH_CODE --- gio/gnetworkmonitor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gio/gnetworkmonitor.c b/gio/gnetworkmonitor.c index d65fc2bc4..f9853fca5 100644 --- a/gio/gnetworkmonitor.c +++ b/gio/gnetworkmonitor.c @@ -68,7 +68,7 @@ */ G_DEFINE_INTERFACE_WITH_CODE (GNetworkMonitor, g_network_monitor, G_TYPE_OBJECT, - g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_INITABLE);) + g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_INITABLE)) enum { From 7d3ecce346c8c4a55fbf7f5c6f9c2ec954dea6fb Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Mon, 29 Jul 2019 17:25:21 +0200 Subject: [PATCH 2/5] gnetworkmonitornm: Disconnect g-signal from proxy So that we're sure never to receive a signal if something is keeping the proxy alive. --- gio/gnetworkmonitornm.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gio/gnetworkmonitornm.c b/gio/gnetworkmonitornm.c index 9013fd49c..52073fac9 100644 --- a/gio/gnetworkmonitornm.c +++ b/gio/gnetworkmonitornm.c @@ -68,6 +68,7 @@ typedef enum { struct _GNetworkMonitorNMPrivate { GDBusProxy *proxy; + guint signal_id; GNetworkConnectivity connectivity; gboolean network_available; @@ -360,8 +361,8 @@ g_network_monitor_nm_initable_init (GInitable *initable, return FALSE; } - g_signal_connect (G_OBJECT (proxy), "g-signal", - G_CALLBACK (proxy_signal_cb), nm); + nm->priv->signal_id = g_signal_connect (G_OBJECT (proxy), "g-signal", + G_CALLBACK (proxy_signal_cb), nm); nm->priv->proxy = proxy; sync_properties (nm, FALSE); @@ -373,6 +374,13 @@ g_network_monitor_nm_finalize (GObject *object) { GNetworkMonitorNM *nm = G_NETWORK_MONITOR_NM (object); + if (nm->priv->proxy != NULL && + nm->priv->signal_id != 0) + { + g_signal_handler_disconnect (nm->priv->proxy, + nm->priv->signal_id); + nm->priv->signal_id = 0; + } g_clear_object (&nm->priv->proxy); G_OBJECT_CLASS (g_network_monitor_nm_parent_class)->finalize (object); From 109f247039696b92c3d696bee1d0377b7b4cb33a Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Mon, 29 Jul 2019 17:26:20 +0200 Subject: [PATCH 3/5] gnetworkmonitornm: Arguments to g-signal's callback are const --- gio/gnetworkmonitornm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gio/gnetworkmonitornm.c b/gio/gnetworkmonitornm.c index 52073fac9..479653a51 100644 --- a/gio/gnetworkmonitornm.c +++ b/gio/gnetworkmonitornm.c @@ -268,8 +268,8 @@ update_cached_property (GDBusProxy *proxy, static void proxy_signal_cb (GDBusProxy *proxy, - gchar *sender_name, - gchar *signal_name, + const gchar *sender_name, + const gchar *signal_name, GVariant *parameters, GNetworkMonitorNM *nm) { From f299886f1fd895c6df7d0c1536fe9193edbde953 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Mon, 29 Jul 2019 17:26:47 +0200 Subject: [PATCH 4/5] gnetworkmonitornm: Remove double-space --- gio/gnetworkmonitornm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gio/gnetworkmonitornm.c b/gio/gnetworkmonitornm.c index 479653a51..5a36a0ba1 100644 --- a/gio/gnetworkmonitornm.c +++ b/gio/gnetworkmonitornm.c @@ -391,7 +391,7 @@ g_network_monitor_nm_class_init (GNetworkMonitorNMClass *nl_class) { GObjectClass *gobject_class = G_OBJECT_CLASS (nl_class); - gobject_class->finalize = g_network_monitor_nm_finalize; + gobject_class->finalize = g_network_monitor_nm_finalize; gobject_class->get_property = g_network_monitor_nm_get_property; g_object_class_override_property (gobject_class, PROP_NETWORK_AVAILABLE, "network-available"); From b80fcc6cb803ac724021e0b2c97f17bbe107591a Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Mon, 29 Jul 2019 17:27:19 +0200 Subject: [PATCH 5/5] tests: Remove unneeded ";" in G_DEFINE_INTERFACE_WITH_CODE --- gobject/tests/type.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gobject/tests/type.c b/gobject/tests/type.c index 1abe4823d..c5db7e992 100644 --- a/gobject/tests/type.c +++ b/gobject/tests/type.c @@ -33,7 +33,7 @@ typedef struct { GType foo_get_type (void); G_DEFINE_INTERFACE_WITH_CODE (Foo, foo, G_TYPE_OBJECT, - g_type_interface_add_prerequisite (g_define_type_id, bar_get_type ());) + g_type_interface_add_prerequisite (g_define_type_id, bar_get_type ())) static void foo_default_init (FooInterface *iface)