From ada9bcc473563f7365e18a213f6fbe0cc05f4caa Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Sat, 4 May 2019 11:36:07 -0300 Subject: [PATCH] calendar: Fix signal handler cleanup on finalize() --- src/core/gcal-calendar.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/core/gcal-calendar.c b/src/core/gcal-calendar.c index 2cb40d4c..de5d02bb 100644 --- a/src/core/gcal-calendar.c +++ b/src/core/gcal-calendar.c @@ -20,8 +20,9 @@ #define G_LOG_DOMAIN "GcalCalendar" -#include "gcal-debug.h" #include "gcal-calendar.h" +#include "gcal-debug.h" +#include "gcal-utils.h" typedef struct { @@ -225,15 +226,13 @@ gcal_calendar_finalize (GObject *object) { GcalCalendar *self = (GcalCalendar *)object; GcalCalendarPrivate *priv = gcal_calendar_get_instance_private (self); + ESourceSelectable *selectable_extension; - g_signal_handler_disconnect (priv->source, priv->color_changed_handler_id); - priv->color_changed_handler_id = 0; + selectable_extension = e_source_get_extension (priv->source, E_SOURCE_EXTENSION_CALENDAR); - g_signal_handler_disconnect (priv->source, priv->name_changed_handler_id); - priv->name_changed_handler_id = 0; - - g_signal_handler_disconnect (priv->client, priv->readonly_changed_handler_id); - priv->readonly_changed_handler_id = 0; + gcal_clear_signal_handler (&priv->color_changed_handler_id, selectable_extension); + gcal_clear_signal_handler (&priv->name_changed_handler_id, selectable_extension); + gcal_clear_signal_handler (&priv->readonly_changed_handler_id, priv->client); g_clear_object (&priv->client); g_clear_object (&priv->source);