From: Felix Fietkau Date: Sun, 6 Feb 2011 17:01:37 +0000 (+0100) Subject: make __avl_find_element() inline X-Git-Url: http://git.archive.openwrt.org/?p=project%2Flibubox.git;a=commitdiff_plain;h=677e7bc0b332a09fde6142119f42e5bac11979d3 make __avl_find_element() inline --- diff --git a/avl.c b/avl.c index fa23b03..6019a9a 100644 --- a/avl.c +++ b/avl.c @@ -103,32 +103,6 @@ avl_init(struct avl_tree *tree, avl_tree_comp comp, bool allow_dups, void *ptr) } /** - * Internal function to support returning the element from a avl tree query - * @param tree pointer to avl tree - * @param key pointer to key - * @param offset offset of node inside the embedded struct - * @param mode mode of lookup operation (less equal, equal or greater equal) - * @param pointer to elemen, NULL if no fitting one was found - */ -void * -__avl_find_element(const struct avl_tree *tree, const void *key, size_t offset, enum avl_find_mode mode) { - void *node = NULL; - - switch (mode) { - case AVL_FIND_EQUAL: - node = avl_find(tree, key); - break; - case AVL_FIND_LESSEQUAL: - node = avl_find_lessequal(tree, key); - break; - case AVL_FIND_GREATEREQUAL: - node = avl_find_greaterequal(tree, key); - break; - } - return node == NULL ? NULL : (((char *)node) - offset); -} - -/** * Finds a node in an avl-tree with a certain key * @param tree pointer to avl-tree * @param key pointer to key diff --git a/avl.h b/avl.h index 80a29b7..a563716 100644 --- a/avl.h +++ b/avl.h @@ -160,8 +160,6 @@ struct avl_node *EXPORT(avl_find_greaterequal)(const struct avl_tree *tree, cons struct avl_node *EXPORT(avl_find_lessequal)(const struct avl_tree *tree, const void *key); int EXPORT(avl_insert)(struct avl_tree *, struct avl_node *); void EXPORT(avl_delete)(struct avl_tree *, struct avl_node *); -void *EXPORT(__avl_find_element)(const struct avl_tree *tree, const void *key, - size_t offset, enum avl_find_mode mode); /** * @param tree pointer to avl-tree @@ -193,6 +191,32 @@ avl_is_empty(struct avl_tree *tree) { } /** + * Internal function to support returning the element from a avl tree query + * @param tree pointer to avl tree + * @param key pointer to key + * @param offset offset of node inside the embedded struct + * @param mode mode of lookup operation (less equal, equal or greater equal) + * @param pointer to elemen, NULL if no fitting one was found + */ +static inline void * +__avl_find_element(const struct avl_tree *tree, const void *key, size_t offset, enum avl_find_mode mode) { + void *node = NULL; + + switch (mode) { + case AVL_FIND_EQUAL: + node = avl_find(tree, key); + break; + case AVL_FIND_LESSEQUAL: + node = avl_find_lessequal(tree, key); + break; + case AVL_FIND_GREATEREQUAL: + node = avl_find_greaterequal(tree, key); + break; + } + return node == NULL ? NULL : (((char *)node) - offset); +} + +/** * @param tree pointer to avl-tree * @param key pointer to key * @param element pointer to a node element