From 0a0128bf4c7f742a09a3140aad09a90b7175c0ed Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Fri, 10 Mar 2023 14:17:38 -0300 Subject: core/calendar-monitor: Keep event alive while removing it This might be the last reference to it, so keep it alive while the signal is being emitted. --- src/core/gcal-calendar-monitor.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/core/gcal-calendar-monitor.c b/src/core/gcal-calendar-monitor.c index 0c82d40b..6f08add2 100644 --- a/src/core/gcal-calendar-monitor.c +++ b/src/core/gcal-calendar-monitor.c @@ -1022,8 +1022,12 @@ remove_all_events (GcalCalendarMonitor *self) g_hash_table_iter_init (&iter, self->shared.events); while (g_hash_table_iter_next (&iter, NULL, (gpointer*) &event)) { + g_object_ref (event); + g_hash_table_iter_remove (&iter); g_signal_emit (self, signals[EVENT_REMOVED], 0, event); + + g_object_unref (event); } } -- cgit v1.2.1