diff --git a/avl.c b/avl.c index 0dfd903..8d0bf65 100644 --- 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; } +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 @@ -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)) { - next = list_next_element(last, list); + next = avl_next(last); 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) - && !(next = list_next_element(node, list))->leader) { + && !(next = avl_next(node))->leader) { next->leader = true; next->balance = node->balance; diff --git a/avl.h b/avl.h index 8323246..e4ca7d8 100644 --- a/avl.h +++ b/avl.h @@ -45,7 +45,6 @@ #include #include "list.h" -#include "list_compat.h" /* Support for OLSR.org linker symbol export */ #define EXPORT(sym) sym diff --git a/list_compat.h b/list_compat.h deleted file mode 100644 index 44cfedd..0000000 --- a/list_compat.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2011-2013 Felix Fietkau - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef __LIST_COMPAT_H -#define __LIST_COMPAT_H - -#define list_is_empty(_list) list_empty(_list) -#define list_next_element(_element, _member) list_entry((_element)->_member.next, typeof(*(_element)), _member) - - -#endif