bring zero ref count loops in sync with each other and the sort model.
2006-09-26 Kristian Rietveld <kris@imendio.com> * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_free_level), (gtk_tree_model_filter_ref_node), (gtk_tree_model_filter_real_unref_node): bring zero ref count loops in sync with each other and the sort model.
This commit is contained in:
committed by
Kristian Rietveld
parent
2d7405d9c6
commit
38dc73faee
@ -1,3 +1,10 @@
|
|||||||
|
2006-09-26 Kristian Rietveld <kris@imendio.com>
|
||||||
|
|
||||||
|
* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_free_level),
|
||||||
|
(gtk_tree_model_filter_ref_node),
|
||||||
|
(gtk_tree_model_filter_real_unref_node): bring zero ref count loops
|
||||||
|
in sync with each other and the sort model.
|
||||||
|
|
||||||
2006-09-26 Kristian Rietveld <kris@imendio.com>
|
2006-09-26 Kristian Rietveld <kris@imendio.com>
|
||||||
|
|
||||||
* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_init),
|
* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_init),
|
||||||
|
|||||||
@ -629,18 +629,14 @@ gtk_tree_model_filter_free_level (GtkTreeModelFilter *filter,
|
|||||||
FilterLevel *parent_level = filter_level->parent_level;
|
FilterLevel *parent_level = filter_level->parent_level;
|
||||||
FilterElt *parent_elt = filter_level->parent_elt;
|
FilterElt *parent_elt = filter_level->parent_elt;
|
||||||
|
|
||||||
do
|
while (parent_level)
|
||||||
{
|
{
|
||||||
if (parent_elt)
|
parent_elt->zero_ref_count--;
|
||||||
parent_elt->zero_ref_count--;
|
|
||||||
|
|
||||||
if (parent_level)
|
parent_elt = parent_level->parent_elt;
|
||||||
{
|
parent_level = parent_level->parent_level;
|
||||||
parent_elt = parent_level->parent_elt;
|
|
||||||
parent_level = parent_level->parent_level;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
while (parent_level);
|
|
||||||
if (filter_level != filter->priv->root)
|
if (filter_level != filter->priv->root)
|
||||||
filter->priv->zero_ref_count--;
|
filter->priv->zero_ref_count--;
|
||||||
}
|
}
|
||||||
@ -2574,19 +2570,16 @@ gtk_tree_model_filter_ref_node (GtkTreeModel *model,
|
|||||||
FilterElt *parent_elt = level->parent_elt;
|
FilterElt *parent_elt = level->parent_elt;
|
||||||
|
|
||||||
/* we were at zero -- time to decrease the zero_ref_count val */
|
/* we were at zero -- time to decrease the zero_ref_count val */
|
||||||
do
|
while (parent_level)
|
||||||
{
|
{
|
||||||
if (parent_elt)
|
parent_elt->zero_ref_count--;
|
||||||
parent_elt->zero_ref_count--;
|
|
||||||
|
|
||||||
if (parent_level)
|
parent_elt = parent_level->parent_elt;
|
||||||
{
|
parent_level = parent_level->parent_level;
|
||||||
parent_elt = parent_level->parent_elt;
|
|
||||||
parent_level = parent_level->parent_level;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
while (parent_level);
|
|
||||||
filter->priv->zero_ref_count--;
|
if (filter->priv->root != level)
|
||||||
|
filter->priv->zero_ref_count--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2637,7 +2630,9 @@ gtk_tree_model_filter_real_unref_node (GtkTreeModel *model,
|
|||||||
parent_elt = parent_level->parent_elt;
|
parent_elt = parent_level->parent_elt;
|
||||||
parent_level = parent_level->parent_level;
|
parent_level = parent_level->parent_level;
|
||||||
}
|
}
|
||||||
filter->priv->zero_ref_count++;
|
|
||||||
|
if (filter->priv->root != level)
|
||||||
|
filter->priv->zero_ref_count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user