projects
/
project
/
libubox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libubox: lua: use pkg-config built in module to search for alternatives
[project/libubox.git]
/
avl.c
diff --git
a/avl.c
b/avl.c
index f17dab5e354b0c4566ff69022a02cdb2ce20f56e..8d0bf65aaa5bdaaf83f0910465281a0542e6dfa1 100644
(file)
--- a/
avl.c
+++ b/
avl.c
@@
-98,6
+98,11
@@
avl_init(struct avl_tree *tree, avl_tree_comp comp, bool allow_dups, void *ptr)
tree->cmp_ptr = ptr;
}
tree->cmp_ptr = ptr;
}
+static inline struct avl_node *avl_next(struct avl_node *node)
+{
+ return list_entry(node->list.next, struct avl_node, list);
+}
+
/**
* Finds a node in an avl-tree with a certain key
* @param tree pointer to avl-tree
/**
* Finds a node in an avl-tree with a certain key
* @param tree pointer to avl-tree
@@
-236,7
+241,7
@@
avl_insert(struct avl_tree *tree, struct avl_node *new)
last = node;
while (!list_is_last(&last->list, &tree->list_head)) {
last = node;
while (!list_is_last(&last->list, &tree->list_head)) {
- next =
list_next_element(last, li
st);
+ next =
avl_next(la
st);
if (next->leader) {
break;
}
if (next->leader) {
break;
}
@@
-307,7
+312,7
@@
avl_delete(struct avl_tree *tree, struct avl_node *node)
if (node->leader) {
if (tree->allow_dups
&& !list_is_last(&node->list, &tree->list_head)
if (node->leader) {
if (tree->allow_dups
&& !list_is_last(&node->list, &tree->list_head)
- && !(next =
list_next_element(node, list
))->leader) {
+ && !(next =
avl_next(node
))->leader) {
next->leader = true;
next->balance = node->balance;
next->leader = true;
next->balance = node->balance;
@@
-498,7
+503,7
@@
avl_insert_after(struct avl_tree *tree, struct avl_node *pos_node, struct avl_no
static void
avl_remove(struct avl_tree *tree, struct avl_node *node)
{
static void
avl_remove(struct avl_tree *tree, struct avl_node *node)
{
- list_
remove
(&node->list);
+ list_
del
(&node->list);
tree->count--;
}
tree->count--;
}