[gtk] fontchooser: Fix objects-finalize test



commit 042537cf0d3fc68527fba890dfa54d16a8538f4e
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Jan 14 15:25:27 2020 -0500

    fontchooser: Fix objects-finalize test
    
    The treeview is evil and keeps reference cycles in the
    form of various tree row references. That gets cleaned up
    if you explicitly gtk_widget_destroy the treeview. But since
    07f2024bfca22331121, the scrolled window no longer destroys
    its child, exposing this issue as a reference leak in
    the objects-finalize test.
    
    The font chooser widget is affected here because it calls
    gtk_tree_view_scroll_to_path from init(), which creates one
    of those reference cycles. Work around this in the font
    chooser by unsetting the tree view model in dispose, which
    clears up this cycle.

 gtk/gtkfontchooserwidget.c | 1 +
 1 file changed, 1 insertion(+)
---
diff --git a/gtk/gtkfontchooserwidget.c b/gtk/gtkfontchooserwidget.c
index a0a9449421..686a8de13a 100644
--- a/gtk/gtkfontchooserwidget.c
+++ b/gtk/gtkfontchooserwidget.c
@@ -716,6 +716,7 @@ gtk_font_chooser_widget_dispose (GObject *object)
   GtkFontChooserWidget *self = GTK_FONT_CHOOSER_WIDGET (object);
   GtkFontChooserWidgetPrivate *priv = gtk_font_chooser_widget_get_instance_private (self);
 
+  gtk_tree_view_set_model (GTK_TREE_VIEW (priv->family_face_list), NULL);
   g_clear_pointer (&priv->stack, gtk_widget_unparent);
 
   G_OBJECT_CLASS (gtk_font_chooser_widget_parent_class)->dispose (object);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]