summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2023-03-10 14:17:38 -0300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2023-03-16 12:27:47 +0000
commit0a0128bf4c7f742a09a3140aad09a90b7175c0ed (patch)
tree91e776d9e83311c908d887037777509bcd9d595f
parentdaec07c9f682967e2e1fc74494762e94bd3ed64b (diff)
downloadgnome-calendar-0a0128bf4c7f742a09a3140aad09a90b7175c0ed.tar.gz
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.
-rw-r--r--src/core/gcal-calendar-monitor.c4
1 files changed, 4 insertions, 0 deletions
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);
}
}