X-Git-Url: http://git.archive.openwrt.org/?p=project%2Flibubox.git;a=blobdiff_plain;f=avl.h;h=3a79e3a73e6beb1160c4b3eff04663da426936da;hp=a563716e1d5f43fd71e4931939176863e101e8ca;hb=7c5d2b30815b5ff0b6bce35c1e486b3c17cce55b;hpb=677e7bc0b332a09fde6142119f42e5bac11979d3 diff --git a/avl.h b/avl.h index a563716..3a79e3a 100644 --- a/avl.h +++ b/avl.h @@ -82,7 +82,7 @@ struct avl_node { /** * pointer to key of node */ - void *key; + const void *key; /** * balance state of AVL tree (0,-1,+1) @@ -267,7 +267,7 @@ __avl_find_element(const struct avl_tree *tree, const void *key, size_t offset, * (automatically converted to type 'element') */ #define avl_first_element(tree, element, node_member) \ - container_of((tree)->list_head.next, typeof(*(element)), node_member) + container_of((tree)->list_head.next, typeof(*(element)), node_member.list) /** * @param tree pointer to tree @@ -279,7 +279,7 @@ __avl_find_element(const struct avl_tree *tree, const void *key, size_t offset, * (automatically converted to type 'element') */ #define avl_last_element(tree, element, node_member) \ - container_of((tree)->list_head.prev, typeof(*(element)), node_member) + container_of((tree)->list_head.prev, typeof(*(element)), node_member.list) /** * This function must not be called for the last element of @@ -292,7 +292,7 @@ __avl_find_element(const struct avl_tree *tree, const void *key, size_t offset, * (automatically converted to type 'element') */ #define avl_next_element(element, node_member) \ - container_of((&(element)->node_member.list)->next, typeof(*(element)), node_member) + container_of((&(element)->node_member.list)->next, typeof(*(element)), node_member.list) /** * This function must not be called for the first element of @@ -305,7 +305,7 @@ __avl_find_element(const struct avl_tree *tree, const void *key, size_t offset, * (automatically converted to type 'element') */ #define avl_prev_element(element, node_member) \ - container_of((&(element)->node_member.list)->prev, typeof(*(element)), node_member) + container_of((&(element)->node_member.list)->prev, typeof(*(element)), node_member.list) /** * Loop over a block of elements of a tree, used similar to a for() command.