From 56c5b0af36f7f0bcd73732cf26833a24cf4017ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= 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 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