Blob Blame History Raw
From 56c5b0af36f7f0bcd73732cf26833a24cf4017ba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes@redhat.com>
Date: Fri, 9 Oct 2015 20:31:29 +0200
Subject: [PATCH 1/2] macros: allow NULL pointer in nm_clear_g_signal_handler()

It does not make sense to issue an error. This should be a helper function.
"NetworkManager[18341]: nm_clear_g_signal_handler: assertion 'G_IS_OBJECT (self)' failed"
error started since commit e6d7fee5a617632acae02e12b1ec6156842df788 due to that.

(cherry picked from commit c33416178f88353b2f424a18c576de09b6ae3215)
(cherry picked from commit 23313d711ff7a328e96d1bc2da084bcb6266b3f0)
---
 include/nm-macros-internal.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/include/nm-macros-internal.h b/include/nm-macros-internal.h
index c4a60fa..4d9979f 100644
--- a/include/nm-macros-internal.h
+++ b/include/nm-macros-internal.h
@@ -260,7 +260,8 @@ nm_clear_g_source (guint *id)
 static inline gboolean
 nm_clear_g_signal_handler (gpointer self, guint *id)
 {
-	g_return_val_if_fail (G_IS_OBJECT (self), FALSE);
+	if (!self)
+		return FALSE;
 
 	if (id && *id) {
 		g_signal_handler_disconnect (self, *id);
-- 
2.4.3


From 92bf4b9f07eb16fdb4eb550dcfb26dae1b167416 Mon Sep 17 00:00:00 2001
From: Thomas Haller <thaller@redhat.com>
Date: Mon, 12 Oct 2015 11:05:04 +0200
Subject: [PATCH 2/2] macros: remove early return from
 nm_clear_g_signal_handler()

It is valid to call nm_clear_g_signal_handler() with missing
@self argument if (and only if) the @id is unspecified as well.

Remove the check for @self to get an assertion in case @id
is missing *and* @self is invalid. In this case,
g_signal_handler_disconnect() will raise a g_critical() for us.

Fixes: c33416178f88353b2f424a18c576de09b6ae3215
(cherry picked from commit 76958f94d4f7a8536dc6fa8676bd8de31bc661c1)
(cherry picked from commit 6f06ec0aba97c5dd89ffbe0f3592f3979d86d223)
---
 include/nm-macros-internal.h | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/include/nm-macros-internal.h b/include/nm-macros-internal.h
index 4d9979f..3c5adcc 100644
--- a/include/nm-macros-internal.h
+++ b/include/nm-macros-internal.h
@@ -260,9 +260,6 @@ nm_clear_g_source (guint *id)
 static inline gboolean
 nm_clear_g_signal_handler (gpointer self, guint *id)
 {
-	if (!self)
-		return FALSE;
-
 	if (id && *id) {
 		g_signal_handler_disconnect (self, *id);
 		*id = 0;
-- 
2.4.3