rbtree: Add _gtk_rbtree_contains()
It's useful in a bunch of places, so split it out
This commit is contained in:
@ -880,6 +880,31 @@ _gtk_rbtree_reorder (GtkRBTree *tree,
|
|||||||
g_free (nodes);
|
g_free (nodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* _gtk_rbtree_contains:
|
||||||
|
* @tree: a tree
|
||||||
|
* @potential_child: a potential child of @tree
|
||||||
|
*
|
||||||
|
* Checks if @potential_child is a child (direct or via intermediate
|
||||||
|
* trees) of @tree.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if @potentitial_child is a child of @tree.
|
||||||
|
**/
|
||||||
|
gboolean
|
||||||
|
_gtk_rbtree_contains (GtkRBTree *tree,
|
||||||
|
GtkRBTree *potential_child)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (tree != NULL, FALSE);
|
||||||
|
g_return_val_if_fail (potential_child != NULL, FALSE);
|
||||||
|
|
||||||
|
do {
|
||||||
|
potential_child = potential_child->parent_tree;
|
||||||
|
if (potential_child == tree)
|
||||||
|
return TRUE;
|
||||||
|
} while (potential_child != NULL);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
gint
|
gint
|
||||||
_gtk_rbtree_node_find_offset (GtkRBTree *tree,
|
_gtk_rbtree_node_find_offset (GtkRBTree *tree,
|
||||||
|
|||||||
@ -117,6 +117,8 @@ gboolean _gtk_rbtree_is_nil (GtkRBNode *node);
|
|||||||
void _gtk_rbtree_reorder (GtkRBTree *tree,
|
void _gtk_rbtree_reorder (GtkRBTree *tree,
|
||||||
gint *new_order,
|
gint *new_order,
|
||||||
gint length);
|
gint length);
|
||||||
|
gboolean _gtk_rbtree_contains (GtkRBTree *tree,
|
||||||
|
GtkRBTree *potential_child);
|
||||||
GtkRBNode *_gtk_rbtree_find_count (GtkRBTree *tree,
|
GtkRBNode *_gtk_rbtree_find_count (GtkRBTree *tree,
|
||||||
gint count);
|
gint count);
|
||||||
void _gtk_rbtree_node_set_height (GtkRBTree *tree,
|
void _gtk_rbtree_node_set_height (GtkRBTree *tree,
|
||||||
|
|||||||
Reference in New Issue
Block a user