summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Kareh <[email protected]>2026-04-01 16:37:22 -0400
committerVictor Kareh <[email protected]>2026-04-01 16:37:22 -0400
commit190e9e18e5a2ab6ec963f7dd7b6e118705852ed1 (patch)
treee729f25dac77a93276e5227f910477bef26c541f
parentd67f86922f566fde7c3ad541b48c5ecf4a861e18 (diff)
downloadmate-panel-fix-eds-event-list-leaks.tar.bz2
mate-panel-fix-eds-event-list-leaks.tar.xz
clock: fix memory leaks in EDS event list handlingfix-eds-event-list-leaks
The calendar popup was not freeing the list of events returned by the calendar client after populating the appointment and task views. This caused unbounded memory growth every time the popup was opened.
-rw-r--r--applets/clock/calendar-window.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/applets/clock/calendar-window.c b/applets/clock/calendar-window.c
index bd117a3f..79780d34 100644
--- a/applets/clock/calendar-window.c
+++ b/applets/clock/calendar-window.c
@@ -1423,6 +1423,8 @@ handle_appointments_changed (CalendarWindow *calwin)
update_frame_visibility (calwin->priv->appointment_list,
GTK_TREE_MODEL (calwin->priv->appointments_filter));
+ g_slist_free_full (events, (GDestroyNotify) calendar_event_free);
+
/* Auto-scroll to next upcoming event */
if (calwin->priv->appointment_tree_view) {
GtkTreeView *tree_view = GTK_TREE_VIEW(calwin->priv->appointment_tree_view);
@@ -1544,6 +1546,8 @@ handle_tasks_changed (CalendarWindow *calwin)
g_free (percent_complete_text);
}
+ g_slist_free_full (events, (GDestroyNotify) calendar_event_free);
+
/* Refresh filter before checking visibility */
if (calwin->priv->tasks_filter)
gtk_tree_model_filter_refilter (calwin->priv->tasks_filter);