diff options
author | Kristian Rietveld <kris@gtk.org> | 2011-09-11 12:02:12 +0200 |
---|---|---|
committer | Kristian Rietveld <kris@gtk.org> | 2011-09-11 12:13:54 +0200 |
commit | a43f2ba01030bd603c3e2dc4cf1bb257ab1a6bf5 (patch) | |
tree | 03461266c1f004345ebdb857640effaed4d3a277 /gtk/gtktreemodelfilter.c | |
parent | 9ed76387fa2d91d7ac063ff1ce6d2cace84d7688 (diff) | |
download | gtk+-a43f2ba01030bd603c3e2dc4cf1bb257ab1a6bf5.tar.gz |
gtktreemodelfilter: fix small bug in prune level
gtk_tree_model_filter_prune_level() should drop all internal reference
counts as well for nodes which are going to be removed from the
sequence.
Diffstat (limited to 'gtk/gtktreemodelfilter.c')
-rw-r--r-- | gtk/gtktreemodelfilter.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gtk/gtktreemodelfilter.c b/gtk/gtktreemodelfilter.c index a8795fb8dd..d88702c298 100644 --- a/gtk/gtktreemodelfilter.c +++ b/gtk/gtktreemodelfilter.c @@ -1088,6 +1088,12 @@ gtk_tree_model_filter_prune_level (GtkTreeModelFilter *filter, while (elt->ext_ref_count > 0) gtk_tree_model_filter_real_unref_node (GTK_TREE_MODEL (filter), &f_iter, TRUE, TRUE); + /* In this case, we do remove reference counts we've added ourselves, + * since the node will be removed from the data structures. + */ + while (elt->ref_count > 0) + gtk_tree_model_filter_real_unref_node (GTK_TREE_MODEL (filter), + &f_iter, FALSE, TRUE); if (elt->visible_siter) { |