aboutsummaryrefslogtreecommitdiff
path: root/tests/test-css-provider-leak.c
Commit message (Collapse)AuthorAgeFilesLines
* src/indicator-ng.c: Fix GtkCssProvider memory leak in indicator_ng_set_labelKenny Daniel2026-04-131-0/+128
indicator_ng_set_label() created a new GtkCssProvider and added it to the label's GtkStyleContext on every call, without removing old ones. gtk_style_context_add_provider() accumulates providers, so each call leaked a provider (~1 KB). Since ayatana-indicator-datetime sends action-state-changed once per second to update the clock label, this leaked ~86,400 providers/day, causing mate-indicator-applet-complete to accumulate ~1.4 GB RSS over 7 days. Fix by storing a single GtkCssProvider in the IndicatorNg struct and reusing it. The provider is created on first use and cleaned up in dispose. Test results (100,000 iterations of set_label): Before fix: +99,692 KB RSS growth After fix: +0 KB RSS growth