[gtk] Rename GtkCssRBTree to GtkRBTree
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk] Rename GtkCssRBTree to GtkRBTree
- Date: Mon, 14 Jan 2019 17:03:07 +0000 (UTC)
commit 25bca27bfe04cddc9b76f9396b44225fe5603f76
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Jan 6 23:37:32 2019 -0500
Rename GtkCssRBTree to GtkRBTree
This is a generally usable red-black tree api,
and it is not used in css at all.
gtk/gtkcssrbtreeprivate.h | 90 -------
gtk/gtkfilterlistmodel.c | 82 +++---
gtk/gtkflattenlistmodel.c | 72 ++---
gtk/gtkmaplistmodel.c | 80 +++---
gtk/{gtkcssrbtree.c => gtkrbtree.c} | 300 ++++++++++-----------
gtk/gtkrbtreeprivate.h | 89 ++++++
gtk/gtkslicelistmodel.c | 1 -
gtk/gtktreelistmodel.c | 104 +++----
gtk/meson.build | 2 +-
testsuite/gtk/meson.build | 2 +-
.../gtk/{cssrbtree-crash.c => rbtree-crash.c} | 64 ++---
11 files changed, 442 insertions(+), 444 deletions(-)
---
diff --git a/gtk/gtkfilterlistmodel.c b/gtk/gtkfilterlistmodel.c
index bf2ced74e5..aa5abe8df2 100644
--- a/gtk/gtkfilterlistmodel.c
+++ b/gtk/gtkfilterlistmodel.c
@@ -21,7 +21,7 @@
#include "gtkfilterlistmodel.h"
-#include "gtkcssrbtreeprivate.h"
+#include "gtkrbtreeprivate.h"
#include "gtkintl.h"
#include "gtkprivate.h"
@@ -69,7 +69,7 @@ struct _GtkFilterListModel
gpointer user_data;
GDestroyNotify user_destroy;
- GtkCssRbTree *items; /* NULL if filter_func == NULL */
+ GtkRbTree *items; /* NULL if filter_func == NULL */
};
struct _GtkFilterListModelClass
@@ -80,22 +80,22 @@ struct _GtkFilterListModelClass
static GParamSpec *properties[NUM_PROPERTIES] = { NULL, };
static FilterNode *
-gtk_filter_list_model_get_nth_filtered (GtkCssRbTree *tree,
- guint position,
- guint *out_unfiltered)
+gtk_filter_list_model_get_nth_filtered (GtkRbTree *tree,
+ guint position,
+ guint *out_unfiltered)
{
FilterNode *node, *tmp;
guint unfiltered;
- node = gtk_css_rb_tree_get_root (tree);
+ node = gtk_rb_tree_get_root (tree);
unfiltered = 0;
while (node)
{
- tmp = gtk_css_rb_tree_get_left (tree, node);
+ tmp = gtk_rb_tree_get_left (tree, node);
if (tmp)
{
- FilterAugment *aug = gtk_css_rb_tree_get_augment (tree, tmp);
+ FilterAugment *aug = gtk_rb_tree_get_augment (tree, tmp);
if (position < aug->n_visible)
{
node = tmp;
@@ -114,7 +114,7 @@ gtk_filter_list_model_get_nth_filtered (GtkCssRbTree *tree,
unfiltered++;
- node = gtk_css_rb_tree_get_right (tree, node);
+ node = gtk_rb_tree_get_right (tree, node);
}
if (out_unfiltered)
@@ -124,22 +124,22 @@ gtk_filter_list_model_get_nth_filtered (GtkCssRbTree *tree,
}
static FilterNode *
-gtk_filter_list_model_get_nth (GtkCssRbTree *tree,
- guint position,
- guint *out_filtered)
+gtk_filter_list_model_get_nth (GtkRbTree *tree,
+ guint position,
+ guint *out_filtered)
{
FilterNode *node, *tmp;
guint filtered;
- node = gtk_css_rb_tree_get_root (tree);
+ node = gtk_rb_tree_get_root (tree);
filtered = 0;
while (node)
{
- tmp = gtk_css_rb_tree_get_left (tree, node);
+ tmp = gtk_rb_tree_get_left (tree, node);
if (tmp)
{
- FilterAugment *aug = gtk_css_rb_tree_get_augment (tree, tmp);
+ FilterAugment *aug = gtk_rb_tree_get_augment (tree, tmp);
if (position < aug->n_items)
{
node = tmp;
@@ -156,7 +156,7 @@ gtk_filter_list_model_get_nth (GtkCssRbTree *tree,
if (node->visible)
filtered++;
- node = gtk_css_rb_tree_get_right (tree, node);
+ node = gtk_rb_tree_get_right (tree, node);
}
if (out_filtered)
@@ -186,11 +186,11 @@ gtk_filter_list_model_get_n_items (GListModel *list)
if (!self->items)
return g_list_model_get_n_items (self->model);
- node = gtk_css_rb_tree_get_root (self->items);
+ node = gtk_rb_tree_get_root (self->items);
if (node == NULL)
return 0;
- aug = gtk_css_rb_tree_get_augment (self->items, node);
+ aug = gtk_rb_tree_get_augment (self->items, node);
return aug->n_visible;
}
@@ -250,7 +250,7 @@ gtk_filter_list_model_add_items (GtkFilterListModel *self,
for (i = 0; i < n_items; i++)
{
- node = gtk_css_rb_tree_insert_before (self->items, after);
+ node = gtk_rb_tree_insert_before (self->items, after);
node->visible = gtk_filter_list_model_run_filter (self, position + i);
if (node->visible)
n_visible++;
@@ -280,10 +280,10 @@ gtk_filter_list_model_items_changed_cb (GListModel *model,
filter_removed = 0;
for (i = 0; i < removed; i++)
{
- FilterNode *next = gtk_css_rb_tree_get_next (self->items, node);
+ FilterNode *next = gtk_rb_tree_get_next (self->items, node);
if (node->visible)
filter_removed++;
- gtk_css_rb_tree_remove (self->items, node);
+ gtk_rb_tree_remove (self->items, node);
node = next;
}
@@ -354,7 +354,7 @@ gtk_filter_list_model_clear_model (GtkFilterListModel *self)
g_signal_handlers_disconnect_by_func (self->model, gtk_filter_list_model_items_changed_cb, self);
g_clear_object (&self->model);
if (self->items)
- gtk_css_rb_tree_remove_all (self->items);
+ gtk_rb_tree_remove_all (self->items);
}
static void
@@ -368,10 +368,10 @@ gtk_filter_list_model_dispose (GObject *object)
self->filter_func = NULL;
self->user_data = NULL;
self->user_destroy = NULL;
- g_clear_pointer (&self->items, gtk_css_rb_tree_unref);
+ g_clear_pointer (&self->items, gtk_rb_tree_unref);
G_OBJECT_CLASS (gtk_filter_list_model_parent_class)->dispose (object);
-};
+}
static void
gtk_filter_list_model_class_init (GtkFilterListModelClass *class)
@@ -428,13 +428,13 @@ gtk_filter_list_model_init (GtkFilterListModel *self)
static void
-gtk_filter_list_model_augment (GtkCssRbTree *filter,
- gpointer _aug,
- gpointer _node,
- gpointer left,
- gpointer right)
+gtk_filter_list_model_augment (GtkRbTree *filter,
+ gpointer _aug,
+ gpointer _node,
+ gpointer left,
+ gpointer right)
{
- FilterNode *node= _node;
+ FilterNode *node = _node;
FilterAugment *aug = _aug;
aug->n_items = 1;
@@ -442,13 +442,13 @@ gtk_filter_list_model_augment (GtkCssRbTree *filter,
if (left)
{
- FilterAugment *left_aug = gtk_css_rb_tree_get_augment (filter, left);
+ FilterAugment *left_aug = gtk_rb_tree_get_augment (filter, left);
aug->n_items += left_aug->n_items;
aug->n_visible += left_aug->n_visible;
}
if (right)
{
- FilterAugment *right_aug = gtk_css_rb_tree_get_augment (filter, right);
+ FilterAugment *right_aug = gtk_rb_tree_get_augment (filter, right);
aug->n_items += right_aug->n_items;
aug->n_visible += right_aug->n_visible;
}
@@ -543,22 +543,22 @@ gtk_filter_list_model_set_filter_func (GtkFilterListModel *self,
if (!will_be_filtered)
{
- g_clear_pointer (&self->items, gtk_css_rb_tree_unref);
+ g_clear_pointer (&self->items, gtk_rb_tree_unref);
}
else if (!was_filtered)
{
guint i, n_items;
- self->items = gtk_css_rb_tree_new (FilterNode,
- FilterAugment,
- gtk_filter_list_model_augment,
- NULL, NULL);
+ self->items = gtk_rb_tree_new (FilterNode,
+ FilterAugment,
+ gtk_filter_list_model_augment,
+ NULL, NULL);
if (self->model)
{
n_items = g_list_model_get_n_items (self->model);
for (i = 0; i < n_items; i++)
{
- FilterNode *node = gtk_css_rb_tree_insert_before (self->items, NULL);
+ FilterNode *node = gtk_rb_tree_insert_before (self->items, NULL);
node->visible = TRUE;
}
}
@@ -675,9 +675,9 @@ gtk_filter_list_model_refilter (GtkFilterListModel *self)
last_change = 0;
n_is_visible = 0;
n_was_visible = 0;
- for (i = 0, node = gtk_css_rb_tree_get_first (self->items);
+ for (i = 0, node = gtk_rb_tree_get_first (self->items);
node != NULL;
- i++, node = gtk_css_rb_tree_get_next (self->items, node))
+ i++, node = gtk_rb_tree_get_next (self->items, node))
{
visible = gtk_filter_list_model_run_filter (self, i);
if (visible == node->visible)
@@ -691,7 +691,7 @@ gtk_filter_list_model_refilter (GtkFilterListModel *self)
}
node->visible = visible;
- gtk_css_rb_tree_mark_dirty (self->items, node);
+ gtk_rb_tree_mark_dirty (self->items, node);
first_change = MIN (n_is_visible, first_change);
if (visible)
n_is_visible++;
diff --git a/gtk/gtkflattenlistmodel.c b/gtk/gtkflattenlistmodel.c
index b7066742b7..58852061e2 100644
--- a/gtk/gtkflattenlistmodel.c
+++ b/gtk/gtkflattenlistmodel.c
@@ -21,7 +21,7 @@
#include "gtkflattenlistmodel.h"
-#include "gtkcssrbtreeprivate.h"
+#include "gtkrbtreeprivate.h"
#include "gtkintl.h"
#include "gtkprivate.h"
@@ -66,7 +66,7 @@ struct _GtkFlattenListModel
GType item_type;
GListModel *model;
- GtkCssRbTree *items; /* NULL if model == NULL */
+ GtkRbTree *items; /* NULL if model == NULL */
};
struct _GtkFlattenListModelClass
@@ -77,21 +77,21 @@ struct _GtkFlattenListModelClass
static GParamSpec *properties[NUM_PROPERTIES] = { NULL, };
static FlattenNode *
-gtk_flatten_list_model_get_nth (GtkCssRbTree *tree,
+gtk_flatten_list_model_get_nth (GtkRbTree *tree,
guint position,
guint *model_position)
{
FlattenNode *node, *tmp;
guint model_n_items;
- node = gtk_css_rb_tree_get_root (tree);
+ node = gtk_rb_tree_get_root (tree);
while (node)
{
- tmp = gtk_css_rb_tree_get_left (tree, node);
+ tmp = gtk_rb_tree_get_left (tree, node);
if (tmp)
{
- FlattenAugment *aug = gtk_css_rb_tree_get_augment (tree, tmp);
+ FlattenAugment *aug = gtk_rb_tree_get_augment (tree, tmp);
if (position < aug->n_items)
{
node = tmp;
@@ -105,7 +105,7 @@ gtk_flatten_list_model_get_nth (GtkCssRbTree *tree,
break;
position -= model_n_items;
- node = gtk_css_rb_tree_get_right (tree, node);
+ node = gtk_rb_tree_get_right (tree, node);
}
if (model_position)
@@ -115,22 +115,22 @@ gtk_flatten_list_model_get_nth (GtkCssRbTree *tree,
}
static FlattenNode *
-gtk_flatten_list_model_get_nth_model (GtkCssRbTree *tree,
+gtk_flatten_list_model_get_nth_model (GtkRbTree *tree,
guint position,
guint *items_before)
{
FlattenNode *node, *tmp;
guint before;
- node = gtk_css_rb_tree_get_root (tree);
+ node = gtk_rb_tree_get_root (tree);
before = 0;
while (node)
{
- tmp = gtk_css_rb_tree_get_left (tree, node);
+ tmp = gtk_rb_tree_get_left (tree, node);
if (tmp)
{
- FlattenAugment *aug = gtk_css_rb_tree_get_augment (tree, tmp);
+ FlattenAugment *aug = gtk_rb_tree_get_augment (tree, tmp);
if (position < aug->n_models)
{
node = tmp;
@@ -145,7 +145,7 @@ gtk_flatten_list_model_get_nth_model (GtkCssRbTree *tree,
position--;
before += g_list_model_get_n_items (node->model);
- node = gtk_css_rb_tree_get_right (tree, node);
+ node = gtk_rb_tree_get_right (tree, node);
}
if (items_before)
@@ -172,11 +172,11 @@ gtk_flatten_list_model_get_n_items (GListModel *list)
if (!self->items)
return 0;
- node = gtk_css_rb_tree_get_root (self->items);
+ node = gtk_rb_tree_get_root (self->items);
if (node == NULL)
return 0;
- aug = gtk_css_rb_tree_get_augment (self->items, node);
+ aug = gtk_rb_tree_get_augment (self->items, node);
return aug->n_items;
}
@@ -220,18 +220,18 @@ gtk_flatten_list_model_items_changed_cb (GListModel *model,
GtkFlattenListModel *self = node->list;
guint real_position;
- gtk_css_rb_tree_mark_dirty (self->items, node);
+ gtk_rb_tree_mark_dirty (self->items, node);
for (real_position = position;
- (parent = gtk_css_rb_tree_get_parent (self->items, node)) != NULL;
+ (parent = gtk_rb_tree_get_parent (self->items, node)) != NULL;
node = parent)
{
- FlattenNode *left = gtk_css_rb_tree_get_left (self->items, parent);
+ FlattenNode *left = gtk_rb_tree_get_left (self->items, parent);
if (left != node)
{
if (left)
{
- FlattenAugment *aug = gtk_css_rb_tree_get_augment (self->items, left);
+ FlattenAugment *aug = gtk_rb_tree_get_augment (self->items, left);
real_position += aug->n_items;
}
real_position += g_list_model_get_n_items (parent->model);
@@ -251,13 +251,13 @@ gtk_flatten_list_model_clear_node (gpointer _node)
}
static void
-gtk_flatten_list_model_augment (GtkCssRbTree *flatten,
- gpointer _aug,
- gpointer _node,
- gpointer left,
- gpointer right)
+gtk_flatten_list_model_augment (GtkRbTree *flatten,
+ gpointer _aug,
+ gpointer _node,
+ gpointer left,
+ gpointer right)
{
- FlattenNode *node= _node;
+ FlattenNode *node = _node;
FlattenAugment *aug = _aug;
aug->n_items = g_list_model_get_n_items (node->model);
@@ -265,13 +265,13 @@ gtk_flatten_list_model_augment (GtkCssRbTree *flatten,
if (left)
{
- FlattenAugment *left_aug = gtk_css_rb_tree_get_augment (flatten, left);
+ FlattenAugment *left_aug = gtk_rb_tree_get_augment (flatten, left);
aug->n_items += left_aug->n_items;
aug->n_models += left_aug->n_models;
}
if (right)
{
- FlattenAugment *right_aug = gtk_css_rb_tree_get_augment (flatten, right);
+ FlattenAugment *right_aug = gtk_rb_tree_get_augment (flatten, right);
aug->n_items += right_aug->n_items;
aug->n_models += right_aug->n_models;
}
@@ -289,7 +289,7 @@ gtk_flatten_list_model_add_items (GtkFlattenListModel *self,
added = 0;
for (i = 0; i < n; i++)
{
- node = gtk_css_rb_tree_insert_before (self->items, after);
+ node = gtk_rb_tree_insert_before (self->items, after);
node->model = g_list_model_get_item (self->model, position + i);
g_warn_if_fail (g_type_is_a (g_list_model_get_item_type (node->model), self->item_type));
g_signal_connect (node->model,
@@ -366,9 +366,9 @@ gtk_flatten_list_model_model_items_changed_cb (GListModel *model,
real_removed = 0;
for (i = 0; i < removed; i++)
{
- FlattenNode *next = gtk_css_rb_tree_get_next (self->items, node);
+ FlattenNode *next = gtk_rb_tree_get_next (self->items, node);
real_removed += g_list_model_get_n_items (node->model);
- gtk_css_rb_tree_remove (self->items, node);
+ gtk_rb_tree_remove (self->items, node);
node = next;
}
@@ -385,7 +385,7 @@ gtk_flatten_list_clear_model (GtkFlattenListModel *self)
{
g_signal_handlers_disconnect_by_func (self->model, gtk_flatten_list_model_model_items_changed_cb,
self);
g_clear_object (&self->model);
- g_clear_pointer (&self->items, gtk_css_rb_tree_unref);
+ g_clear_pointer (&self->items, gtk_rb_tree_unref);
}
}
@@ -397,7 +397,7 @@ gtk_flatten_list_model_dispose (GObject *object)
gtk_flatten_list_clear_model (self);
G_OBJECT_CLASS (gtk_flatten_list_model_parent_class)->dispose (object);
-};
+}
static void
gtk_flatten_list_model_class_init (GtkFlattenListModelClass *class)
@@ -501,11 +501,11 @@ gtk_flatten_list_model_set_model (GtkFlattenListModel *self,
{
g_object_ref (model);
g_signal_connect (model, "items-changed", G_CALLBACK (gtk_flatten_list_model_model_items_changed_cb),
self);
- self->items = gtk_css_rb_tree_new (FlattenNode,
- FlattenAugment,
- gtk_flatten_list_model_augment,
- gtk_flatten_list_model_clear_node,
- NULL);
+ self->items = gtk_rb_tree_new (FlattenNode,
+ FlattenAugment,
+ gtk_flatten_list_model_augment,
+ gtk_flatten_list_model_clear_node,
+ NULL);
added = gtk_flatten_list_model_add_items (self, NULL, 0, g_list_model_get_n_items (model));
}
diff --git a/gtk/gtkmaplistmodel.c b/gtk/gtkmaplistmodel.c
index 6f5e331d80..9be8aa7922 100644
--- a/gtk/gtkmaplistmodel.c
+++ b/gtk/gtkmaplistmodel.c
@@ -21,7 +21,7 @@
#include "gtkmaplistmodel.h"
-#include "gtkcssrbtreeprivate.h"
+#include "gtkrbtreeprivate.h"
#include "gtkintl.h"
#include "gtkprivate.h"
@@ -73,7 +73,7 @@ struct _GtkMapListModel
gpointer user_data;
GDestroyNotify user_destroy;
- GtkCssRbTree *items; /* NULL if map_func == NULL */
+ GtkRbTree *items; /* NULL if map_func == NULL */
};
struct _GtkMapListModelClass
@@ -84,21 +84,21 @@ struct _GtkMapListModelClass
static GParamSpec *properties[NUM_PROPERTIES] = { NULL, };
static MapNode *
-gtk_map_list_model_get_nth (GtkCssRbTree *tree,
- guint position,
- guint *out_start_pos)
+gtk_map_list_model_get_nth (GtkRbTree *tree,
+ guint position,
+ guint *out_start_pos)
{
MapNode *node, *tmp;
guint start_pos = position;
- node = gtk_css_rb_tree_get_root (tree);
+ node = gtk_rb_tree_get_root (tree);
while (node)
{
- tmp = gtk_css_rb_tree_get_left (tree, node);
+ tmp = gtk_rb_tree_get_left (tree, node);
if (tmp)
{
- MapAugment *aug = gtk_css_rb_tree_get_augment (tree, tmp);
+ MapAugment *aug = gtk_rb_tree_get_augment (tree, tmp);
if (position < aug->n_items)
{
node = tmp;
@@ -114,7 +114,7 @@ gtk_map_list_model_get_nth (GtkCssRbTree *tree,
}
position -= node->n_items;
- node = gtk_css_rb_tree_get_right (tree, node);
+ node = gtk_rb_tree_get_right (tree, node);
}
if (out_start_pos)
@@ -165,18 +165,18 @@ gtk_map_list_model_get_item (GListModel *list,
if (offset != position)
{
- MapNode *before = gtk_css_rb_tree_insert_before (self->items, node);
+ MapNode *before = gtk_rb_tree_insert_before (self->items, node);
before->n_items = position - offset;
node->n_items -= before->n_items;
- gtk_css_rb_tree_mark_dirty (self->items, node);
+ gtk_rb_tree_mark_dirty (self->items, node);
}
if (node->n_items > 1)
{
- MapNode *after = gtk_css_rb_tree_insert_after (self->items, node);
+ MapNode *after = gtk_rb_tree_insert_after (self->items, node);
after->n_items = node->n_items - 1;
node->n_items = 1;
- gtk_css_rb_tree_mark_dirty (self->items, node);
+ gtk_rb_tree_mark_dirty (self->items, node);
}
node->item = self->map_func (g_list_model_get_item (self->model, position), self->user_data);
@@ -225,9 +225,9 @@ gtk_map_list_model_items_changed_cb (GListModel *model,
end = start + node->n_items;
if (start == position && end <= position + removed)
{
- MapNode *next = gtk_css_rb_tree_get_next (self->items, node);
+ MapNode *next = gtk_rb_tree_get_next (self->items, node);
removed -= node->n_items;
- gtk_css_rb_tree_remove (self->items, node);
+ gtk_rb_tree_remove (self->items, node);
node = next;
}
else
@@ -236,16 +236,16 @@ gtk_map_list_model_items_changed_cb (GListModel *model,
{
node->n_items -= removed;
removed = 0;
- gtk_css_rb_tree_mark_dirty (self->items, node);
+ gtk_rb_tree_mark_dirty (self->items, node);
}
else if (start < position)
{
guint overlap = node->n_items - (position - start);
node->n_items -= overlap;
- gtk_css_rb_tree_mark_dirty (self->items, node);
+ gtk_rb_tree_mark_dirty (self->items, node);
removed -= overlap;
start = position;
- node = gtk_css_rb_tree_get_next (self->items, node);
+ node = gtk_rb_tree_get_next (self->items, node);
}
}
}
@@ -253,12 +253,12 @@ gtk_map_list_model_items_changed_cb (GListModel *model,
if (added)
{
if (node == NULL)
- node = gtk_css_rb_tree_insert_before (self->items, NULL);
+ node = gtk_rb_tree_insert_before (self->items, NULL);
else if (node->item)
- node = gtk_css_rb_tree_insert_after (self->items, node);
+ node = gtk_rb_tree_insert_after (self->items, node);
node->n_items += added;
- gtk_css_rb_tree_mark_dirty (self->items, node);
+ gtk_rb_tree_mark_dirty (self->items, node);
}
g_list_model_items_changed (G_LIST_MODEL (self), position, removed, added);
@@ -337,10 +337,10 @@ gtk_map_list_model_dispose (GObject *object)
self->map_func = NULL;
self->user_data = NULL;
self->user_destroy = NULL;
- g_clear_pointer (&self->items, gtk_css_rb_tree_unref);
+ g_clear_pointer (&self->items, gtk_rb_tree_unref);
G_OBJECT_CLASS (gtk_map_list_model_parent_class)->dispose (object);
-};
+}
static void
gtk_map_list_model_class_init (GtkMapListModelClass *class)
@@ -397,25 +397,25 @@ gtk_map_list_model_init (GtkMapListModel *self)
static void
-gtk_map_list_model_augment (GtkCssRbTree *map,
- gpointer _aug,
- gpointer _node,
- gpointer left,
- gpointer right)
+gtk_map_list_model_augment (GtkRbTree *map,
+ gpointer _aug,
+ gpointer _node,
+ gpointer left,
+ gpointer right)
{
- MapNode *node= _node;
+ MapNode *node = _node;
MapAugment *aug = _aug;
aug->n_items = node->n_items;
if (left)
{
- MapAugment *left_aug = gtk_css_rb_tree_get_augment (map, left);
+ MapAugment *left_aug = gtk_rb_tree_get_augment (map, left);
aug->n_items += left_aug->n_items;
}
if (right)
{
- MapAugment *right_aug = gtk_css_rb_tree_get_augment (map, right);
+ MapAugment *right_aug = gtk_rb_tree_get_augment (map, right);
aug->n_items += right_aug->n_items;
}
}
@@ -473,28 +473,28 @@ gtk_map_list_model_init_items (GtkMapListModel *self)
if (self->items)
{
- gtk_css_rb_tree_remove_all (self->items);
+ gtk_rb_tree_remove_all (self->items);
}
else
{
- self->items = gtk_css_rb_tree_new (MapNode,
- MapAugment,
- gtk_map_list_model_augment,
- gtk_map_list_model_clear_node,
- NULL);
+ self->items = gtk_rb_tree_new (MapNode,
+ MapAugment,
+ gtk_map_list_model_augment,
+ gtk_map_list_model_clear_node,
+ NULL);
}
n_items = g_list_model_get_n_items (self->model);
if (n_items)
{
- MapNode *node = gtk_css_rb_tree_insert_before (self->items, NULL);
+ MapNode *node = gtk_rb_tree_insert_before (self->items, NULL);
node->n_items = g_list_model_get_n_items (self->model);
- gtk_css_rb_tree_mark_dirty (self->items, node);
+ gtk_rb_tree_mark_dirty (self->items, node);
}
}
else
{
- g_clear_pointer (&self->items, gtk_css_rb_tree_unref);
+ g_clear_pointer (&self->items, gtk_rb_tree_unref);
}
}
diff --git a/gtk/gtkcssrbtree.c b/gtk/gtkrbtree.c
similarity index 57%
rename from gtk/gtkcssrbtree.c
rename to gtk/gtkrbtree.c
index d791f042b3..a7576ffc2b 100644
--- a/gtk/gtkcssrbtree.c
+++ b/gtk/gtkrbtree.c
@@ -17,51 +17,51 @@
#include "config.h"
-#include "gtkcssrbtreeprivate.h"
+#include "gtkrbtreeprivate.h"
#include "gtkdebug.h"
-typedef struct _GtkCssRbNode GtkCssRbNode;
+typedef struct _GtkRbNode GtkRbNode;
-struct _GtkCssRbTree
+struct _GtkRbTree
{
guint ref_count;
gsize element_size;
gsize augment_size;
- GtkCssRbTreeAugmentFunc augment_func;
+ GtkRbTreeAugmentFunc augment_func;
GDestroyNotify clear_func;
GDestroyNotify clear_augment_func;
- GtkCssRbNode *root;
+ GtkRbNode *root;
};
-struct _GtkCssRbNode
+struct _GtkRbNode
{
guint red :1;
guint dirty :1;
- GtkCssRbNode *left;
- GtkCssRbNode *right;
- GtkCssRbNode *parent;
+ GtkRbNode *left;
+ GtkRbNode *right;
+ GtkRbNode *parent;
};
-#define NODE_FROM_POINTER(ptr) ((GtkCssRbNode *) ((ptr) ? (((guchar *) (ptr)) - sizeof (GtkCssRbNode)) :
NULL))
-#define NODE_TO_POINTER(node) ((gpointer) ((node) ? (((guchar *) (node)) + sizeof (GtkCssRbNode)) : NULL))
-#define NODE_TO_AUG_POINTER(tree, node) ((gpointer) ((node) ? (((guchar *) (node)) + sizeof (GtkCssRbNode) +
(tree)->element_size) : NULL))
+#define NODE_FROM_POINTER(ptr) ((GtkRbNode *) ((ptr) ? (((guchar *) (ptr)) - sizeof (GtkRbNode)) : NULL))
+#define NODE_TO_POINTER(node) ((gpointer) ((node) ? (((guchar *) (node)) + sizeof (GtkRbNode)) : NULL))
+#define NODE_TO_AUG_POINTER(tree, node) ((gpointer) ((node) ? (((guchar *) (node)) + sizeof (GtkRbNode) +
(tree)->element_size) : NULL))
static inline gsize
-gtk_css_rb_node_get_size (GtkCssRbTree *tree)
+gtk_rb_node_get_size (GtkRbTree *tree)
{
- return sizeof (GtkCssRbNode) + tree->element_size + tree->augment_size;
+ return sizeof (GtkRbNode) + tree->element_size + tree->augment_size;
}
-static GtkCssRbNode *
-gtk_css_rb_node_new (GtkCssRbTree *tree)
+static GtkRbNode *
+gtk_rb_node_new (GtkRbTree *tree)
{
- GtkCssRbNode *result;
+ GtkRbNode *result;
- result = g_slice_alloc0 (gtk_css_rb_node_get_size (tree));
+ result = g_slice_alloc0 (gtk_rb_node_get_size (tree));
result->red = TRUE;
result->dirty = TRUE;
@@ -70,35 +70,35 @@ gtk_css_rb_node_new (GtkCssRbTree *tree)
}
static void
-gtk_css_rb_node_free (GtkCssRbTree *tree,
- GtkCssRbNode *node)
+gtk_rb_node_free (GtkRbTree *tree,
+ GtkRbNode *node)
{
if (tree->clear_func)
tree->clear_func (NODE_TO_POINTER (node));
if (tree->clear_augment_func)
tree->clear_augment_func (NODE_TO_AUG_POINTER (tree, node));
- g_slice_free1 (gtk_css_rb_node_get_size (tree), node);
+ g_slice_free1 (gtk_rb_node_get_size (tree), node);
}
static void
-gtk_css_rb_node_free_deep (GtkCssRbTree *tree,
- GtkCssRbNode *node)
+gtk_rb_node_free_deep (GtkRbTree *tree,
+ GtkRbNode *node)
{
- GtkCssRbNode *right = node->right;
+ GtkRbNode *right = node->right;
if (node->left)
- gtk_css_rb_node_free_deep (tree, node->left);
+ gtk_rb_node_free_deep (tree, node->left);
- gtk_css_rb_node_free (tree, node);
+ gtk_rb_node_free (tree, node);
if (right)
- gtk_css_rb_node_free_deep (tree, right);
+ gtk_rb_node_free_deep (tree, right);
}
static void
-gtk_css_rb_node_mark_dirty (GtkCssRbNode *node,
- gboolean mark_parent)
+gtk_rb_node_mark_dirty (GtkRbNode *node,
+ gboolean mark_parent)
{
if (node->dirty)
return;
@@ -106,12 +106,12 @@ gtk_css_rb_node_mark_dirty (GtkCssRbNode *node,
node->dirty = TRUE;
if (mark_parent && node->parent)
- gtk_css_rb_node_mark_dirty (node->parent, TRUE);
+ gtk_rb_node_mark_dirty (node->parent, TRUE);
}
static void
-gtk_css_rb_node_clean (GtkCssRbTree *tree,
- GtkCssRbNode *node)
+gtk_rb_node_clean (GtkRbTree *tree,
+ GtkRbNode *node)
{
if (!node->dirty)
return;
@@ -125,8 +125,8 @@ gtk_css_rb_node_clean (GtkCssRbTree *tree,
NODE_TO_POINTER (node->right));
}
-static GtkCssRbNode *
-gtk_css_rb_node_get_first (GtkCssRbNode *node)
+static GtkRbNode *
+gtk_rb_node_get_first (GtkRbNode *node)
{
while (node->left)
node = node->left;
@@ -134,8 +134,8 @@ gtk_css_rb_node_get_first (GtkCssRbNode *node)
return node;
}
-static GtkCssRbNode *
-gtk_css_rb_node_get_last (GtkCssRbNode *node)
+static GtkRbNode *
+gtk_rb_node_get_last (GtkRbNode *node)
{
while (node->right)
node = node->right;
@@ -143,13 +143,13 @@ gtk_css_rb_node_get_last (GtkCssRbNode *node)
return node;
}
-static GtkCssRbNode *
-gtk_css_rb_node_get_previous (GtkCssRbNode *node)
+static GtkRbNode *
+gtk_rb_node_get_previous (GtkRbNode *node)
{
- GtkCssRbNode *parent;
+ GtkRbNode *parent;
if (node->left)
- return gtk_css_rb_node_get_last (node->left);
+ return gtk_rb_node_get_last (node->left);
for (parent = node->parent; parent != NULL; parent = node->parent)
{
@@ -162,13 +162,13 @@ gtk_css_rb_node_get_previous (GtkCssRbNode *node)
return NULL;
}
-static GtkCssRbNode *
-gtk_css_rb_node_get_next (GtkCssRbNode *node)
+static GtkRbNode *
+gtk_rb_node_get_next (GtkRbNode *node)
{
- GtkCssRbNode *parent;
+ GtkRbNode *parent;
if (node->right)
- return gtk_css_rb_node_get_first (node->right);
+ return gtk_rb_node_get_first (node->right);
for (parent = node->parent; parent != NULL; parent = node->parent)
{
@@ -182,10 +182,10 @@ gtk_css_rb_node_get_next (GtkCssRbNode *node)
}
static void
-gtk_css_rb_node_rotate_left (GtkCssRbTree *tree,
- GtkCssRbNode *node)
+gtk_rb_node_rotate_left (GtkRbTree *tree,
+ GtkRbNode *node)
{
- GtkCssRbNode *right;
+ GtkRbNode *right;
right = node->right;
@@ -209,15 +209,15 @@ gtk_css_rb_node_rotate_left (GtkCssRbTree *tree,
right->left = node;
node->parent = right;
- gtk_css_rb_node_mark_dirty (node, FALSE);
- gtk_css_rb_node_mark_dirty (right, FALSE);
+ gtk_rb_node_mark_dirty (node, FALSE);
+ gtk_rb_node_mark_dirty (right, FALSE);
}
static void
-gtk_css_rb_node_rotate_right (GtkCssRbTree *tree,
- GtkCssRbNode *node)
+gtk_rb_node_rotate_right (GtkRbTree *tree,
+ GtkRbNode *node)
{
- GtkCssRbNode *left;
+ GtkRbNode *left;
left = node->left;
@@ -242,12 +242,12 @@ gtk_css_rb_node_rotate_right (GtkCssRbTree *tree,
left->right = node;
node->parent = left;
- gtk_css_rb_node_mark_dirty (node, FALSE);
- gtk_css_rb_node_mark_dirty (left, FALSE);
+ gtk_rb_node_mark_dirty (node, FALSE);
+ gtk_rb_node_mark_dirty (left, FALSE);
}
static gboolean
-is_red (GtkCssRbNode *node_or_null)
+is_red (GtkRbNode *node_or_null)
{
if (node_or_null == NULL)
return FALSE;
@@ -256,13 +256,13 @@ is_red (GtkCssRbNode *node_or_null)
}
static inline gboolean
-is_black (GtkCssRbNode *node_or_null)
+is_black (GtkRbNode *node_or_null)
{
return !is_red (node_or_null);
}
static void
-set_black (GtkCssRbNode *node_or_null)
+set_black (GtkRbNode *node_or_null)
{
if (node_or_null == NULL)
return;
@@ -271,7 +271,7 @@ set_black (GtkCssRbNode *node_or_null)
}
static void
-set_red (GtkCssRbNode *node_or_null)
+set_red (GtkRbNode *node_or_null)
{
if (node_or_null == NULL)
return;
@@ -280,8 +280,8 @@ set_red (GtkCssRbNode *node_or_null)
}
static void
-gtk_css_rb_tree_insert_fixup (GtkCssRbTree *tree,
- GtkCssRbNode *node)
+gtk_rb_tree_insert_fixup (GtkRbTree *tree,
+ GtkRbNode *node)
{
/* check Red-Black properties */
@@ -292,7 +292,7 @@ gtk_css_rb_tree_insert_fixup (GtkCssRbTree *tree,
if (node->parent == node->parent->parent->left)
{
- GtkCssRbNode *uncle = node->parent->parent->right;
+ GtkRbNode *uncle = node->parent->parent->right;
if (is_red (uncle))
{
@@ -309,18 +309,18 @@ gtk_css_rb_tree_insert_fixup (GtkCssRbTree *tree,
{
/* make node a left child */
node = node->parent;
- gtk_css_rb_node_rotate_left (tree, node);
+ gtk_rb_node_rotate_left (tree, node);
}
/* recolor and rotate */
set_black (node->parent);
set_red (node->parent->parent);
- gtk_css_rb_node_rotate_right (tree, node->parent->parent);
+ gtk_rb_node_rotate_right (tree, node->parent->parent);
}
}
else
{
/* mirror image of above code */
- GtkCssRbNode *uncle = node->parent->parent->left;
+ GtkRbNode *uncle = node->parent->parent->left;
if (is_red (uncle))
{
@@ -336,11 +336,11 @@ gtk_css_rb_tree_insert_fixup (GtkCssRbTree *tree,
if (node == node->parent->left)
{
node = node->parent;
- gtk_css_rb_node_rotate_right (tree, node);
+ gtk_rb_node_rotate_right (tree, node);
}
set_black (node->parent);
set_red (node->parent->parent);
- gtk_css_rb_node_rotate_left (tree, node->parent->parent);
+ gtk_rb_node_rotate_left (tree, node->parent->parent);
}
}
}
@@ -349,21 +349,21 @@ gtk_css_rb_tree_insert_fixup (GtkCssRbTree *tree,
}
static void
-gtk_css_rb_tree_remove_node_fixup (GtkCssRbTree *tree,
- GtkCssRbNode *node,
- GtkCssRbNode *parent)
+gtk_rb_tree_remove_node_fixup (GtkRbTree *tree,
+ GtkRbNode *node,
+ GtkRbNode *parent)
{
while (node != tree->root && is_black (node))
{
if (node == parent->left)
{
- GtkCssRbNode *w = parent->right;
+ GtkRbNode *w = parent->right;
if (is_red (w))
{
set_black (w);
set_red (parent);
- gtk_css_rb_node_rotate_left (tree, parent);
+ gtk_rb_node_rotate_left (tree, parent);
w = parent->right;
}
if (is_black (w->left) && is_black (w->right))
@@ -377,24 +377,24 @@ gtk_css_rb_tree_remove_node_fixup (GtkCssRbTree *tree,
{
set_black (w->left);
set_red (w);
- gtk_css_rb_node_rotate_right (tree, w);
+ gtk_rb_node_rotate_right (tree, w);
w = parent->right;
}
w->red = parent->red;
set_black (parent);
set_black (w->right);
- gtk_css_rb_node_rotate_left (tree, parent);
+ gtk_rb_node_rotate_left (tree, parent);
node = tree->root;
}
}
else
{
- GtkCssRbNode *w = parent->left;
+ GtkRbNode *w = parent->left;
if (is_red (w))
{
set_black (w);
set_red (parent);
- gtk_css_rb_node_rotate_right (tree, parent);
+ gtk_rb_node_rotate_right (tree, parent);
w = parent->left;
}
if (is_black (w->right) && is_black (w->left))
@@ -408,13 +408,13 @@ gtk_css_rb_tree_remove_node_fixup (GtkCssRbTree *tree,
{
set_black (w->right);
set_red (w);
- gtk_css_rb_node_rotate_left (tree, w);
+ gtk_rb_node_rotate_left (tree, w);
w = parent->left;
}
w->red = parent->red;
set_black (parent);
set_black (w->left);
- gtk_css_rb_node_rotate_right (tree, parent);
+ gtk_rb_node_rotate_right (tree, parent);
node = tree->root;
}
}
@@ -425,16 +425,16 @@ gtk_css_rb_tree_remove_node_fixup (GtkCssRbTree *tree,
set_black (node);
}
-GtkCssRbTree *
-gtk_css_rb_tree_new_for_size (gsize element_size,
- gsize augment_size,
- GtkCssRbTreeAugmentFunc augment_func,
- GDestroyNotify clear_func,
- GDestroyNotify clear_augment_func)
+GtkRbTree *
+gtk_rb_tree_new_for_size (gsize element_size,
+ gsize augment_size,
+ GtkRbTreeAugmentFunc augment_func,
+ GDestroyNotify clear_func,
+ GDestroyNotify clear_augment_func)
{
- GtkCssRbTree *tree;
+ GtkRbTree *tree;
- tree = g_slice_new0 (GtkCssRbTree);
+ tree = g_slice_new0 (GtkRbTree);
tree->ref_count = 1;
tree->element_size = element_size;
@@ -446,8 +446,8 @@ gtk_css_rb_tree_new_for_size (gsize element_size,
return tree;
}
-GtkCssRbTree *
-gtk_css_rb_tree_ref (GtkCssRbTree *tree)
+GtkRbTree *
+gtk_rb_tree_ref (GtkRbTree *tree)
{
tree->ref_count++;
@@ -455,103 +455,103 @@ gtk_css_rb_tree_ref (GtkCssRbTree *tree)
}
void
-gtk_css_rb_tree_unref (GtkCssRbTree *tree)
+gtk_rb_tree_unref (GtkRbTree *tree)
{
tree->ref_count--;
if (tree->ref_count > 0)
return;
if (tree->root)
- gtk_css_rb_node_free_deep (tree, tree->root);
+ gtk_rb_node_free_deep (tree, tree->root);
- g_slice_free (GtkCssRbTree, tree);
+ g_slice_free (GtkRbTree, tree);
}
gpointer
-gtk_css_rb_tree_get_first (GtkCssRbTree *tree)
+gtk_rb_tree_get_first (GtkRbTree *tree)
{
if (tree->root == NULL)
return NULL;
- return NODE_TO_POINTER (gtk_css_rb_node_get_first (tree->root));
+ return NODE_TO_POINTER (gtk_rb_node_get_first (tree->root));
}
gpointer
-gtk_css_rb_tree_get_last (GtkCssRbTree *tree)
+gtk_rb_tree_get_last (GtkRbTree *tree)
{
if (tree->root == NULL)
return NULL;
- return NODE_TO_POINTER (gtk_css_rb_node_get_last (tree->root));
+ return NODE_TO_POINTER (gtk_rb_node_get_last (tree->root));
}
gpointer
-gtk_css_rb_tree_get_previous (GtkCssRbTree *tree,
- gpointer node)
+gtk_rb_tree_get_previous (GtkRbTree *tree,
+ gpointer node)
{
- return NODE_TO_POINTER (gtk_css_rb_node_get_previous (NODE_FROM_POINTER (node)));
+ return NODE_TO_POINTER (gtk_rb_node_get_previous (NODE_FROM_POINTER (node)));
}
gpointer
-gtk_css_rb_tree_get_next (GtkCssRbTree *tree,
- gpointer node)
+gtk_rb_tree_get_next (GtkRbTree *tree,
+ gpointer node)
{
- return NODE_TO_POINTER (gtk_css_rb_node_get_next (NODE_FROM_POINTER (node)));
+ return NODE_TO_POINTER (gtk_rb_node_get_next (NODE_FROM_POINTER (node)));
}
gpointer
-gtk_css_rb_tree_get_root (GtkCssRbTree *tree)
+gtk_rb_tree_get_root (GtkRbTree *tree)
{
return NODE_TO_POINTER (tree->root);
}
gpointer
-gtk_css_rb_tree_get_parent (GtkCssRbTree *tree,
- gpointer node)
+gtk_rb_tree_get_parent (GtkRbTree *tree,
+ gpointer node)
{
return NODE_TO_POINTER (NODE_FROM_POINTER (node)->parent);
}
gpointer
-gtk_css_rb_tree_get_left (GtkCssRbTree *tree,
- gpointer node)
+gtk_rb_tree_get_left (GtkRbTree *tree,
+ gpointer node)
{
return NODE_TO_POINTER (NODE_FROM_POINTER (node)->left);
}
gpointer
-gtk_css_rb_tree_get_right (GtkCssRbTree *tree,
- gpointer node)
+gtk_rb_tree_get_right (GtkRbTree *tree,
+ gpointer node)
{
return NODE_TO_POINTER (NODE_FROM_POINTER (node)->right);
}
gpointer
-gtk_css_rb_tree_get_augment (GtkCssRbTree *tree,
- gpointer node)
+gtk_rb_tree_get_augment (GtkRbTree *tree,
+ gpointer node)
{
- GtkCssRbNode *rbnode = NODE_FROM_POINTER (node);
+ GtkRbNode *rbnode = NODE_FROM_POINTER (node);
- gtk_css_rb_node_clean (tree, rbnode);
+ gtk_rb_node_clean (tree, rbnode);
return NODE_TO_AUG_POINTER (tree, rbnode);
}
void
-gtk_css_rb_tree_mark_dirty (GtkCssRbTree *tree,
- gpointer node)
+gtk_rb_tree_mark_dirty (GtkRbTree *tree,
+ gpointer node)
{
- gtk_css_rb_node_mark_dirty (NODE_FROM_POINTER (node), TRUE);
+ gtk_rb_node_mark_dirty (NODE_FROM_POINTER (node), TRUE);
}
gpointer
-gtk_css_rb_tree_insert_before (GtkCssRbTree *tree,
- gpointer node)
+gtk_rb_tree_insert_before (GtkRbTree *tree,
+ gpointer node)
{
- GtkCssRbNode *result;
+ GtkRbNode *result;
/* setup new node */
- result = gtk_css_rb_node_new (tree);
+ result = gtk_rb_node_new (tree);
if (tree->root == NULL)
{
@@ -560,15 +560,15 @@ gtk_css_rb_tree_insert_before (GtkCssRbTree *tree,
}
else if (node == NULL)
{
- return gtk_css_rb_tree_insert_after (tree, gtk_css_rb_tree_get_last (tree));
+ return gtk_rb_tree_insert_after (tree, gtk_rb_tree_get_last (tree));
}
else
{
- GtkCssRbNode *current = NODE_FROM_POINTER (node);
+ GtkRbNode *current = NODE_FROM_POINTER (node);
if (current->left)
{
- current = gtk_css_rb_node_get_last (current->left);
+ current = gtk_rb_node_get_last (current->left);
current->right = result;
}
else
@@ -576,22 +576,22 @@ gtk_css_rb_tree_insert_before (GtkCssRbTree *tree,
current->left = result;
}
result->parent = current;
- gtk_css_rb_node_mark_dirty (current, TRUE);
+ gtk_rb_node_mark_dirty (current, TRUE);
}
- gtk_css_rb_tree_insert_fixup (tree, result);
+ gtk_rb_tree_insert_fixup (tree, result);
return NODE_TO_POINTER (result);
}
gpointer
-gtk_css_rb_tree_insert_after (GtkCssRbTree *tree,
- gpointer node)
+gtk_rb_tree_insert_after (GtkRbTree *tree,
+ gpointer node)
{
- GtkCssRbNode *result;
+ GtkRbNode *result;
/* setup new node */
- result = gtk_css_rb_node_new (tree);
+ result = gtk_rb_node_new (tree);
if (tree->root == NULL)
{
@@ -600,15 +600,15 @@ gtk_css_rb_tree_insert_after (GtkCssRbTree *tree,
}
else if (node == NULL)
{
- return gtk_css_rb_tree_insert_before (tree, gtk_css_rb_tree_get_first (tree));
+ return gtk_rb_tree_insert_before (tree, gtk_rb_tree_get_first (tree));
}
else
{
- GtkCssRbNode *current = NODE_FROM_POINTER (node);
+ GtkRbNode *current = NODE_FROM_POINTER (node);
if (current->right)
{
- current = gtk_css_rb_node_get_first (current->right);
+ current = gtk_rb_node_get_first (current->right);
current->left = result;
}
else
@@ -616,19 +616,19 @@ gtk_css_rb_tree_insert_after (GtkCssRbTree *tree,
current->right = result;
}
result->parent = current;
- gtk_css_rb_node_mark_dirty (current, TRUE);
+ gtk_rb_node_mark_dirty (current, TRUE);
}
- gtk_css_rb_tree_insert_fixup (tree, result);
+ gtk_rb_tree_insert_fixup (tree, result);
return NODE_TO_POINTER (result);
}
void
-gtk_css_rb_tree_remove (GtkCssRbTree *tree,
- gpointer node)
+gtk_rb_tree_remove (GtkRbTree *tree,
+ gpointer node)
{
- GtkCssRbNode *x, *y, *real_node;
+ GtkRbNode *x, *y, *real_node;
real_node = NODE_FROM_POINTER (node);
y = real_node;
@@ -655,7 +655,7 @@ gtk_css_rb_tree_remove (GtkCssRbTree *tree,
y->parent->left = x;
else
y->parent->right = x;
- gtk_css_rb_node_mark_dirty (y->parent, TRUE);
+ gtk_rb_node_mark_dirty (y->parent, TRUE);
}
else
{
@@ -665,7 +665,7 @@ gtk_css_rb_tree_remove (GtkCssRbTree *tree,
/* We need to clean up the validity of the tree.
*/
if (is_black (y))
- gtk_css_rb_tree_remove_node_fixup (tree, x, y->parent);
+ gtk_rb_tree_remove_node_fixup (tree, x, y->parent);
if (y != real_node)
{
@@ -686,35 +686,35 @@ gtk_css_rb_tree_remove (GtkCssRbTree *tree,
y->parent->left = y;
else
y->parent->right = y;
- gtk_css_rb_node_mark_dirty (y->parent, TRUE);
+ gtk_rb_node_mark_dirty (y->parent, TRUE);
}
else
{
tree->root = y;
}
- gtk_css_rb_node_mark_dirty (y, TRUE);
+ gtk_rb_node_mark_dirty (y, TRUE);
}
- gtk_css_rb_node_free (tree, real_node);
+ gtk_rb_node_free (tree, real_node);
}
void
-gtk_css_rb_tree_remove_all (GtkCssRbTree *tree)
+gtk_rb_tree_remove_all (GtkRbTree *tree)
{
if (tree->root)
- gtk_css_rb_node_free_deep (tree, tree->root);
+ gtk_rb_node_free_deep (tree, tree->root);
tree->root = NULL;
}
gpointer
-gtk_css_rb_tree_find (GtkCssRbTree *tree,
- gpointer *out_before,
- gpointer *out_after,
- GtkCssRbTreeFindFunc find_func,
- gpointer user_data)
+gtk_rb_tree_find (GtkRbTree *tree,
+ gpointer *out_before,
+ gpointer *out_after,
+ GtkRbTreeFindFunc find_func,
+ gpointer user_data)
{
- GtkCssRbNode *node, *before = NULL, *after = NULL;
+ GtkRbNode *node, *before = NULL, *after = NULL;
int cmp;
if (tree->root == NULL)
@@ -753,9 +753,9 @@ gtk_css_rb_tree_find (GtkCssRbTree *tree,
}
if (out_before)
- *out_before = NODE_TO_POINTER (gtk_css_rb_node_get_previous (node));
+ *out_before = NODE_TO_POINTER (gtk_rb_node_get_previous (node));
if (out_after)
- *out_after = NODE_TO_POINTER (gtk_css_rb_node_get_next (node));
+ *out_after = NODE_TO_POINTER (gtk_rb_node_get_next (node));
return NODE_TO_POINTER (node);
}
diff --git a/gtk/gtkrbtreeprivate.h b/gtk/gtkrbtreeprivate.h
new file mode 100644
index 0000000000..b73c80708d
--- /dev/null
+++ b/gtk/gtkrbtreeprivate.h
@@ -0,0 +1,89 @@
+/* gtkrbtree.h
+ * Copyright (C) 2000 Red Hat, Inc., Jonathan Blandford <jrb redhat com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/* A Red-Black Tree implementation used specifically by GtkTreeView.
+ */
+#ifndef __GTK_RB_TREE_H__
+#define __GTK_RB_TREE_H__
+
+#include <glib.h>
+
+
+G_BEGIN_DECLS
+
+
+typedef struct _GtkRbTree GtkRbTree;
+
+typedef void (* GtkRbTreeAugmentFunc) (GtkRbTree *tree,
+ gpointer node_augment,
+ gpointer node,
+ gpointer left,
+ gpointer right);
+typedef int (* GtkRbTreeFindFunc) (GtkRbTree *tree,
+ gpointer node,
+ gpointer user_data);
+
+GtkRbTree * gtk_rb_tree_new_for_size (gsize element_size,
+ gsize augment_size,
+ GtkRbTreeAugmentFunc augment_func,
+ GDestroyNotify clear_func,
+ GDestroyNotify clear_augment_func);
+#define gtk_rb_tree_new(type, augment_type, augment_func, clear_func, clear_augment_func) \
+ gtk_rb_tree_new_for_size (sizeof (type), sizeof (augment_type), (augment_func), (clear_func),
(clear_augment_func))
+
+GtkRbTree * gtk_rb_tree_ref (GtkRbTree *tree);
+void gtk_rb_tree_unref (GtkRbTree *tree);
+
+gpointer gtk_rb_tree_get_first (GtkRbTree *tree);
+gpointer gtk_rb_tree_get_last (GtkRbTree *tree);
+gpointer gtk_rb_tree_get_previous (GtkRbTree *tree,
+ gpointer node);
+gpointer gtk_rb_tree_get_next (GtkRbTree *tree,
+ gpointer node);
+
+gpointer gtk_rb_tree_get_root (GtkRbTree *tree);
+gpointer gtk_rb_tree_get_parent (GtkRbTree *tree,
+ gpointer node);
+gpointer gtk_rb_tree_get_left (GtkRbTree *tree,
+ gpointer node);
+gpointer gtk_rb_tree_get_right (GtkRbTree *tree,
+ gpointer node);
+gpointer gtk_rb_tree_get_augment (GtkRbTree *tree,
+ gpointer node);
+
+void gtk_rb_tree_mark_dirty (GtkRbTree *tree,
+ gpointer node);
+
+gpointer gtk_rb_tree_insert_before (GtkRbTree *tree,
+ gpointer node);
+gpointer gtk_rb_tree_insert_after (GtkRbTree *tree,
+ gpointer node);
+void gtk_rb_tree_remove (GtkRbTree *tree,
+ gpointer node);
+void gtk_rb_tree_remove_all (GtkRbTree *tree);
+
+gpointer gtk_rb_tree_find (GtkRbTree *tree,
+ gpointer *out_before,
+ gpointer *out_after,
+ GtkRbTreeFindFunc find_func,
+ gpointer user_data);
+
+
+G_END_DECLS
+
+
+#endif /* __GTK_RB_TREE_H__ */
diff --git a/gtk/gtkslicelistmodel.c b/gtk/gtkslicelistmodel.c
index 5144462e5c..712e46ca68 100644
--- a/gtk/gtkslicelistmodel.c
+++ b/gtk/gtkslicelistmodel.c
@@ -21,7 +21,6 @@
#include "gtkslicelistmodel.h"
-#include "gtkcssrbtreeprivate.h"
#include "gtkintl.h"
#include "gtkprivate.h"
diff --git a/gtk/gtktreelistmodel.c b/gtk/gtktreelistmodel.c
index 186a25b967..af609e61ce 100644
--- a/gtk/gtktreelistmodel.c
+++ b/gtk/gtktreelistmodel.c
@@ -21,7 +21,7 @@
#include "gtktreelistmodel.h"
-#include "gtkcssrbtreeprivate.h"
+#include "gtkrbtreeprivate.h"
#include "gtkintl.h"
#include "gtkprivate.h"
@@ -50,7 +50,7 @@ struct _TreeNode
{
GListModel *model;
GtkTreeListRow *row;
- GtkCssRbTree *children;
+ GtkRbTree *children;
union {
TreeNode *parent;
GtkTreeListModel *list;
@@ -112,19 +112,19 @@ static TreeNode *
tree_node_get_nth_child (TreeNode *node,
guint position)
{
- GtkCssRbTree *tree;
+ GtkRbTree *tree;
TreeNode *child, *tmp;
TreeAugment *aug;
tree = node->children;
- child = gtk_css_rb_tree_get_root (tree);
+ child = gtk_rb_tree_get_root (tree);
while (child)
{
- tmp = gtk_css_rb_tree_get_left (tree, child);
+ tmp = gtk_rb_tree_get_left (tree, child);
if (tmp)
{
- aug = gtk_css_rb_tree_get_augment (tree, tmp);
+ aug = gtk_rb_tree_get_augment (tree, tmp);
if (position < aug->n_local)
{
child = tmp;
@@ -138,7 +138,7 @@ tree_node_get_nth_child (TreeNode *node,
position--;
- child = gtk_css_rb_tree_get_right (tree, child);
+ child = gtk_rb_tree_get_right (tree, child);
}
return NULL;
@@ -153,27 +153,27 @@ tree_node_get_n_children (TreeNode *node)
if (node->children == NULL)
return 0;
- child_node = gtk_css_rb_tree_get_root (node->children);
+ child_node = gtk_rb_tree_get_root (node->children);
if (child_node == NULL)
return 0;
- child_aug = gtk_css_rb_tree_get_augment (node->children, child_node);
+ child_aug = gtk_rb_tree_get_augment (node->children, child_node);
return child_aug->n_items;
}
static guint
-tree_node_get_local_position (GtkCssRbTree *tree,
- TreeNode *node)
+tree_node_get_local_position (GtkRbTree *tree,
+ TreeNode *node)
{
TreeNode *left, *parent;
TreeAugment *left_aug;
guint n;
- left = gtk_css_rb_tree_get_left (tree, node);
+ left = gtk_rb_tree_get_left (tree, node);
if (left)
{
- left_aug = gtk_css_rb_tree_get_augment (tree, left);
+ left_aug = gtk_rb_tree_get_augment (tree, left);
n = left_aug->n_local;
}
else
@@ -181,11 +181,11 @@ tree_node_get_local_position (GtkCssRbTree *tree,
n = 0;
}
- for (parent = gtk_css_rb_tree_get_parent (tree, node);
+ for (parent = gtk_rb_tree_get_parent (tree, node);
parent;
- parent = gtk_css_rb_tree_get_parent (tree, node))
+ parent = gtk_rb_tree_get_parent (tree, node))
{
- left = gtk_css_rb_tree_get_left (tree, parent);
+ left = gtk_rb_tree_get_left (tree, parent);
if (left == node)
{
/* we are the left node, nothing changes */
@@ -196,7 +196,7 @@ tree_node_get_local_position (GtkCssRbTree *tree,
n++;
if (left)
{
- left_aug = gtk_css_rb_tree_get_augment (tree, left);
+ left_aug = gtk_rb_tree_get_augment (tree, left);
n += left_aug->n_local;
}
}
@@ -209,7 +209,7 @@ tree_node_get_local_position (GtkCssRbTree *tree,
static guint
tree_node_get_position (TreeNode *node)
{
- GtkCssRbTree *tree;
+ GtkRbTree *tree;
TreeNode *left, *parent;
TreeAugment *left_aug;
guint n;
@@ -220,18 +220,18 @@ tree_node_get_position (TreeNode *node)
{
tree = node->parent->children;
- left = gtk_css_rb_tree_get_left (tree, node);
+ left = gtk_rb_tree_get_left (tree, node);
if (left)
{
- left_aug = gtk_css_rb_tree_get_augment (tree, left);
+ left_aug = gtk_rb_tree_get_augment (tree, left);
n += left_aug->n_items;
}
- for (parent = gtk_css_rb_tree_get_parent (tree, node);
+ for (parent = gtk_rb_tree_get_parent (tree, node);
parent;
- parent = gtk_css_rb_tree_get_parent (tree, node))
+ parent = gtk_rb_tree_get_parent (tree, node))
{
- left = gtk_css_rb_tree_get_left (tree, parent);
+ left = gtk_rb_tree_get_left (tree, parent);
if (left == node)
{
/* we are the left node, nothing changes */
@@ -242,7 +242,7 @@ tree_node_get_position (TreeNode *node)
n += 1 + tree_node_get_n_children (parent);
if (left)
{
- left_aug = gtk_css_rb_tree_get_augment (tree, left);
+ left_aug = gtk_rb_tree_get_augment (tree, left);
n += left_aug->n_items;
}
}
@@ -262,7 +262,7 @@ tree_node_mark_dirty (TreeNode *node)
!node->is_root;
node = node->parent)
{
- gtk_css_rb_tree_mark_dirty (node->parent->children, node);
+ gtk_rb_tree_mark_dirty (node->parent->children, node);
}
}
@@ -270,7 +270,7 @@ static TreeNode *
gtk_tree_list_model_get_nth (GtkTreeListModel *self,
guint position)
{
- GtkCssRbTree *tree;
+ GtkRbTree *tree;
TreeNode *node, *tmp;
guint n_children;
@@ -279,14 +279,14 @@ gtk_tree_list_model_get_nth (GtkTreeListModel *self,
return NULL;
tree = self->root_node.children;
- node = gtk_css_rb_tree_get_root (tree);
+ node = gtk_rb_tree_get_root (tree);
while (TRUE)
{
- tmp = gtk_css_rb_tree_get_left (tree, node);
+ tmp = gtk_rb_tree_get_left (tree, node);
if (tmp)
{
- TreeAugment *aug = gtk_css_rb_tree_get_augment (tree, tmp);
+ TreeAugment *aug = gtk_rb_tree_get_augment (tree, tmp);
if (position < aug->n_items)
{
node = tmp;
@@ -304,12 +304,12 @@ gtk_tree_list_model_get_nth (GtkTreeListModel *self,
if (position < n_children)
{
tree = node->children;
- node = gtk_css_rb_tree_get_root (tree);
+ node = gtk_rb_tree_get_root (tree);
continue;
}
position -= n_children;
- node = gtk_css_rb_tree_get_right (tree, node);
+ node = gtk_rb_tree_get_right (tree, node);
}
g_return_val_if_reached (NULL);
@@ -406,8 +406,8 @@ gtk_tree_list_model_items_changed_cb (GListModel *model,
for (i = 0; i < removed; i++)
{
tmp = child;
- child = gtk_css_rb_tree_get_next (node->children, child);
- gtk_css_rb_tree_remove (node->children, tmp);
+ child = gtk_rb_tree_get_next (node->children, child);
+ gtk_rb_tree_remove (node->children, tmp);
}
}
else
@@ -418,7 +418,7 @@ gtk_tree_list_model_items_changed_cb (GListModel *model,
tree_added = added;
for (i = 0; i < added; i++)
{
- child = gtk_css_rb_tree_insert_before (node->children, child);
+ child = gtk_rb_tree_insert_before (node->children, child);
child->parent = node;
}
if (self->autoexpand)
@@ -426,7 +426,7 @@ gtk_tree_list_model_items_changed_cb (GListModel *model,
for (i = 0; i < added; i++)
{
tree_added += gtk_tree_list_model_expand_node (self, child);
- child = gtk_css_rb_tree_get_next (node->children, child);
+ child = gtk_rb_tree_get_next (node->children, child);
}
}
@@ -456,15 +456,15 @@ gtk_tree_list_model_clear_node (gpointer data)
g_object_unref (node->model);
}
if (node->children)
- gtk_css_rb_tree_unref (node->children);
+ gtk_rb_tree_unref (node->children);
}
static void
-gtk_tree_list_model_augment (GtkCssRbTree *tree,
- gpointer _aug,
- gpointer _node,
- gpointer left,
- gpointer right)
+gtk_tree_list_model_augment (GtkRbTree *tree,
+ gpointer _aug,
+ gpointer _node,
+ gpointer left,
+ gpointer right)
{
TreeAugment *aug = _aug;
@@ -474,13 +474,13 @@ gtk_tree_list_model_augment (GtkCssRbTree *tree,
if (left)
{
- TreeAugment *left_aug = gtk_css_rb_tree_get_augment (tree, left);
+ TreeAugment *left_aug = gtk_rb_tree_get_augment (tree, left);
aug->n_items += left_aug->n_items;
aug->n_local += left_aug->n_local;
}
if (right)
{
- TreeAugment *right_aug = gtk_css_rb_tree_get_augment (tree, right);
+ TreeAugment *right_aug = gtk_rb_tree_get_augment (tree, right);
aug->n_items += right_aug->n_items;
aug->n_local += right_aug->n_local;
}
@@ -499,17 +499,17 @@ gtk_tree_list_model_init_node (GtkTreeListModel *list,
"items-changed",
G_CALLBACK (gtk_tree_list_model_items_changed_cb),
self);
- self->children = gtk_css_rb_tree_new (TreeNode,
- TreeAugment,
- gtk_tree_list_model_augment,
- gtk_tree_list_model_clear_node,
- NULL);
+ self->children = gtk_rb_tree_new (TreeNode,
+ TreeAugment,
+ gtk_tree_list_model_augment,
+ gtk_tree_list_model_clear_node,
+ NULL);
n = g_list_model_get_n_items (model);
node = NULL;
for (i = 0; i < n; i++)
{
- node = gtk_css_rb_tree_insert_after (self->children, node);
+ node = gtk_rb_tree_insert_after (self->children, node);
node->parent = self;
if (list->autoexpand)
gtk_tree_list_model_expand_node (list, node);
@@ -561,7 +561,7 @@ gtk_tree_list_model_collapse_node (GtkTreeListModel *self,
n_items = tree_node_get_n_children (node);
- g_clear_pointer (&node->children, gtk_css_rb_tree_unref);
+ g_clear_pointer (&node->children, gtk_rb_tree_unref);
g_clear_object (&node->model);
tree_node_mark_dirty (node);
@@ -683,7 +683,7 @@ gtk_tree_list_model_finalize (GObject *object)
self->user_destroy (self->user_data);
G_OBJECT_CLASS (gtk_tree_list_model_parent_class)->finalize (object);
-};
+}
static void
gtk_tree_list_model_class_init (GtkTreeListModelClass *class)
@@ -1026,7 +1026,7 @@ gtk_tree_list_row_dispose (GObject *object)
self->node->row = NULL;
G_OBJECT_CLASS (gtk_tree_list_row_parent_class)->dispose (object);
-};
+}
static void
gtk_tree_list_row_class_init (GtkTreeListRowClass *class)
diff --git a/gtk/meson.build b/gtk/meson.build
index e2eb7af3a5..e45b18bf8e 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -79,7 +79,6 @@ gtk_private_sources = files([
'gtkcssparser.c',
'gtkcsspathnode.c',
'gtkcsspositionvalue.c',
- 'gtkcssrbtree.c',
'gtkcssrepeatvalue.c',
'gtkcssrgbavalue.c',
'gtkcssselector.c',
@@ -132,6 +131,7 @@ gtk_private_sources = files([
'gtkprintutils.c',
'gtkprivate.c',
'gtkprogresstracker.c',
+ 'gtkrbtree.c',
'gtkquery.c',
'gtkscaler.c',
'gtksearchengine.c',
diff --git a/testsuite/gtk/meson.build b/testsuite/gtk/meson.build
index 69dd63df7d..912dbb409a 100644
--- a/testsuite/gtk/meson.build
+++ b/testsuite/gtk/meson.build
@@ -17,7 +17,7 @@ tests = [
['cellarea'],
['check-icon-names'],
['cssprovider'],
- ['cssrbtree-crash', ['../../gtk/gtkcssrbtree.c'], ['-DGTK_COMPILATION', '-UG_ENABLE_DEBUG']],
+ ['rbtree-crash', ['../../gtk/gtkrbtree.c'], ['-DGTK_COMPILATION', '-UG_ENABLE_DEBUG']],
['defaultvalue'],
['entry'],
['filterlistmodel'],
diff --git a/testsuite/gtk/cssrbtree-crash.c b/testsuite/gtk/rbtree-crash.c
similarity index 78%
rename from testsuite/gtk/cssrbtree-crash.c
rename to testsuite/gtk/rbtree-crash.c
index 3d1036148f..ec46c45445 100644
--- a/testsuite/gtk/cssrbtree-crash.c
+++ b/testsuite/gtk/rbtree-crash.c
@@ -21,7 +21,7 @@
#include <gtk/gtk.h>
-#include "gtk/gtkcssrbtreeprivate.h"
+#include "gtk/gtkrbtreeprivate.h"
typedef struct _Node Node;
typedef struct _Aug Aug;
@@ -35,11 +35,11 @@ struct _Aug {
};
static void
-augment (GtkCssRbTree *tree,
- gpointer _aug,
- gpointer _node,
- gpointer left,
- gpointer right)
+augment (GtkRbTree *tree,
+ gpointer _aug,
+ gpointer _node,
+ gpointer left,
+ gpointer right)
{
Aug *aug = _aug;
@@ -47,33 +47,33 @@ augment (GtkCssRbTree *tree,
if (left)
{
- Aug *left_aug = gtk_css_rb_tree_get_augment (tree, left);
+ Aug *left_aug = gtk_rb_tree_get_augment (tree, left);
aug->n_items += left_aug->n_items;
}
if (right)
{
- Aug *right_aug = gtk_css_rb_tree_get_augment (tree, right);
+ Aug *right_aug = gtk_rb_tree_get_augment (tree, right);
aug->n_items += right_aug->n_items;
}
}
static Node *
-get (GtkCssRbTree *tree,
- guint pos)
+get (GtkRbTree *tree,
+ guint pos)
{
Node *node, *tmp;
- node = gtk_css_rb_tree_get_root (tree);
+ node = gtk_rb_tree_get_root (tree);
while (node)
{
- tmp = gtk_css_rb_tree_get_left (tree, node);
+ tmp = gtk_rb_tree_get_left (tree, node);
if (tmp)
{
- Aug *aug = gtk_css_rb_tree_get_augment (tree, tmp);
+ Aug *aug = gtk_rb_tree_get_augment (tree, tmp);
if (pos < aug->n_items)
{
node = tmp;
@@ -86,45 +86,45 @@ get (GtkCssRbTree *tree,
break;
pos--;
- node = gtk_css_rb_tree_get_right (tree, node);
+ node = gtk_rb_tree_get_right (tree, node);
}
return node;
}
static void
-add (GtkCssRbTree *tree,
- guint pos)
+add (GtkRbTree *tree,
+ guint pos)
{
Node *node = get (tree, pos);
- gtk_css_rb_tree_insert_before (tree, node);
+ gtk_rb_tree_insert_before (tree, node);
}
static void
-delete (GtkCssRbTree *tree,
- guint pos)
+delete (GtkRbTree *tree,
+ guint pos)
{
Node *node = get (tree, pos);
- gtk_css_rb_tree_remove (tree, node);
+ gtk_rb_tree_remove (tree, node);
}
static guint
-print_node (GtkCssRbTree *tree,
- Node *node,
- guint depth,
- const char *prefix,
- guint n)
+print_node (GtkRbTree *tree,
+ Node *node,
+ guint depth,
+ const char *prefix,
+ guint n)
{
Node *child;
- child = gtk_css_rb_tree_get_left (tree, node);
+ child = gtk_rb_tree_get_left (tree, node);
if (child)
n = print_node (tree, child, depth + 1, "/", n);
g_print ("%*s %u\n", 2 * depth, prefix, n);
n++;
- child = gtk_css_rb_tree_get_right (tree, node);
+ child = gtk_rb_tree_get_right (tree, node);
if (child)
n = print_node (tree, child, depth + 1, "\\", n);
@@ -132,18 +132,18 @@ print_node (GtkCssRbTree *tree,
}
static void
-print (GtkCssRbTree *tree)
+print (GtkRbTree *tree)
{
- print_node (tree, gtk_css_rb_tree_get_root (tree), 0, "", 0);
+ print_node (tree, gtk_rb_tree_get_root (tree), 0, "", 0);
}
static void
test_crash (void)
{
- GtkCssRbTree *tree;
+ GtkRbTree *tree;
guint i;
- tree = gtk_css_rb_tree_new (Node, Aug, augment, NULL, NULL);
+ tree = gtk_rb_tree_new (Node, Aug, augment, NULL, NULL);
for (i = 0; i < 300; i++)
add (tree, i);
@@ -270,7 +270,7 @@ test_crash (void)
print (tree);
delete (tree, 102);
- gtk_css_rb_tree_unref (tree);
+ gtk_rb_tree_unref (tree);
}
int
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]