From: Matthias Clasen Date: Tue, 14 Jan 2020 20:25:27 +0000 (-0500) Subject: fontchooser: Fix objects-finalize test X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~20^2~330 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=042537cf0d3fc68527fba890dfa54d16a8538f4e;p=gtk4.git 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. --- 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);