diff options
author | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2023-03-10 14:17:38 -0300 |
---|---|---|
committer | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2023-03-16 12:27:47 +0000 |
commit | 0a0128bf4c7f742a09a3140aad09a90b7175c0ed (patch) | |
tree | 91e776d9e83311c908d887037777509bcd9d595f | |
parent | daec07c9f682967e2e1fc74494762e94bd3ed64b (diff) | |
download | gnome-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.c | 4 |
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); } } |