From 6cbd7e29ddeb0e2a428cdd42e0d878ab6a127454 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 10 Nov 2020 09:07:40 -0500 Subject: [PATCH] fontchooser: Plug listmodel memory leaks We were leaking references returned from g_list_model_get_item in some places. --- gtk/gtkfontchooserwidget.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gtk/gtkfontchooserwidget.c b/gtk/gtkfontchooserwidget.c index 254752f84d..62b0320049 100644 --- a/gtk/gtkfontchooserwidget.c +++ b/gtk/gtkfontchooserwidget.c @@ -1368,11 +1368,14 @@ gtk_font_chooser_widget_ensure_matching_selection (GtkFontChooserWidget *self) n = g_list_model_get_n_items (G_LIST_MODEL (self->selection)); for (i = 0; i < n; i++) { - gpointer item = g_list_model_get_item (G_LIST_MODEL (self->selection), i); + gpointer item; PangoFontFace *face; PangoFontFamily *family; PangoFontDescription *merged; + item = g_list_model_get_item (G_LIST_MODEL (self->selection), i); + g_object_unref (item); + if (PANGO_IS_FONT_FAMILY (item)) { family = item; @@ -1384,14 +1387,10 @@ gtk_font_chooser_widget_ensure_matching_selection (GtkFontChooserWidget *self) family = pango_font_face_get_family (face); } if (!my_pango_font_family_equal (desc_family, pango_font_family_get_name (family))) - { - g_object_unref (face); - continue; - } + continue; merged = pango_font_face_describe (face); pango_font_description_merge_static (merged, self->font_desc, FALSE); - g_object_unref (face); if (pango_font_description_equal (merged, self->font_desc)) {