From 825a3d837a33f226c879cd02ad15c3fba57e8b2c Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 23 Jan 2012 23:30:42 +1000 Subject: Update the EFL to what I'm actually using, coz I'm using some stuff not yet released. --- libraries/eina/src/include/eina_clist.h | 160 ++++++++------------------------ 1 file changed, 41 insertions(+), 119 deletions(-) (limited to 'libraries/eina/src/include/eina_clist.h') diff --git a/libraries/eina/src/include/eina_clist.h b/libraries/eina/src/include/eina_clist.h index 68f15df..096a4b7 100644 --- a/libraries/eina/src/include/eina_clist.h +++ b/libraries/eina/src/include/eina_clist.h @@ -23,7 +23,22 @@ #define __EINA_CLIST_H__ /** - * @addtogroup Eina_CList_Group Compact inline list + * @addtogroup Eina_Data_Types_Group Data Types + * + * @{ + */ + +/** + * @addtogroup Eina_Containers_Group Containers + * + * @{ + */ + +/** + * @defgroup Eina_CList_Group Compact List + * + * @{ + * * @brief Eina_Clist is a compact (inline) list implementation * * Elements of this list are members of the structs stored in the list @@ -42,9 +57,8 @@ * @note There's no NULL at the end of the list, the last item points to the head. * * @note List heads must be initialized with EINA_CLIST_INIT or by calling eina_clist_element_init - */ - -/* Define a list like so: + * + * Define a list like so: * * @code * struct gadget @@ -88,24 +102,6 @@ */ /** - * @addtogroup Eina_Data_Types_Group Data Types - * - * @{ - */ - -/** - * @addtogroup Eina_Containers_Group Containers - * - * @{ - */ - -/** - * @defgroup Eina_CList_Group Compact list - * - * @{ - */ - -/** * @typedef Eina_Clist * This is the list head and the list entry. * @since 1.1.0 @@ -135,13 +131,7 @@ struct _Eina_Clist * @note There's no need to initialize an element before adding it to the list. * @since 1.1.0 */ -static inline void eina_clist_add_after(Eina_Clist *elem, Eina_Clist *to_add) -{ - to_add->next = elem->next; - to_add->prev = elem; - elem->next->prev = to_add; - elem->next = to_add; -} +static inline void eina_clist_add_after(Eina_Clist *elem, Eina_Clist *to_add); /** * Add an element before the specified one. @@ -154,13 +144,7 @@ static inline void eina_clist_add_after(Eina_Clist *elem, Eina_Clist *to_add) * @note There's no need to initialize an element before adding it to the list. * @since 1.1.0 */ -static inline void eina_clist_add_before(Eina_Clist *elem, Eina_Clist *to_add) -{ - to_add->next = elem; - to_add->prev = elem->prev; - elem->prev->next = to_add; - elem->prev = to_add; -} +static inline void eina_clist_add_before(Eina_Clist *elem, Eina_Clist *to_add); /** * Add element at the head of the list. @@ -173,10 +157,7 @@ static inline void eina_clist_add_before(Eina_Clist *elem, Eina_Clist *to_add) * @note There's no need to initialize an element before adding it to the list. * @since 1.1.0 */ -static inline void eina_clist_add_head(Eina_Clist *list, Eina_Clist *elem) -{ - eina_clist_add_after(list, elem); -} +static inline void eina_clist_add_head(Eina_Clist *list, Eina_Clist *elem); /** * Add element at the tail of the list. @@ -189,10 +170,7 @@ static inline void eina_clist_add_head(Eina_Clist *list, Eina_Clist *elem) * @note There's no need to initialize an element before adding it to the list. * @since 1.1.0 */ -static inline void eina_clist_add_tail(Eina_Clist *list, Eina_Clist *elem) -{ - eina_clist_add_before(list, elem); -} +static inline void eina_clist_add_tail(Eina_Clist *list, Eina_Clist *elem); /** * Init an (unlinked) element. @@ -207,11 +185,7 @@ static inline void eina_clist_add_tail(Eina_Clist *list, Eina_Clist *elem) * @note It is not necessary to call this before adding an element to this list. * @since 1.1.0 */ -static inline void eina_clist_element_init(Eina_Clist *elem) -{ - elem->next = NULL; - elem->prev = NULL; -} +static inline void eina_clist_element_init(Eina_Clist *elem); /** * Check if an element is in a list or not. @@ -222,10 +196,7 @@ static inline void eina_clist_element_init(Eina_Clist *elem) * it has been added to a list or remove from a list. * @since 1.1.0 */ -static inline int eina_clist_element_is_linked(Eina_Clist *elem) -{ - return (elem->next != NULL && elem->prev != NULL); -} +static inline int eina_clist_element_is_linked(Eina_Clist *elem); /** * Remove an element from its list. @@ -235,12 +206,7 @@ static inline int eina_clist_element_is_linked(Eina_Clist *elem) * @post The element is marked as not being in any list * @since 1.1.0 */ -static inline void eina_clist_remove(Eina_Clist *elem) -{ - elem->next->prev = elem->prev; - elem->prev->next = elem->next; - eina_clist_element_init(elem); -} +static inline void eina_clist_remove(Eina_Clist *elem); /** * Get the next element. @@ -248,15 +214,10 @@ static inline void eina_clist_remove(Eina_Clist *elem) * @param list The list * @param elem An element * @pre @a elem is in @a list - * @return The element after @elem in @list or NULL if @a elem is last in @a list + * @return The element after @a elem in @a list or @c NULL if @a elem is last in @a list * @since 1.1.0 */ -static inline Eina_Clist *eina_clist_next(const Eina_Clist *list, const Eina_Clist *elem) -{ - Eina_Clist *ret = elem->next; - if (elem->next == list) ret = NULL; - return ret; -} +static inline Eina_Clist *eina_clist_next(const Eina_Clist *list, const Eina_Clist *elem); /** * Get the previous element. @@ -267,12 +228,7 @@ static inline Eina_Clist *eina_clist_next(const Eina_Clist *list, const Eina_Cli * @return The element before @a elem or NULL if @a elem is the first in the list * @since 1.1.0 */ -static inline Eina_Clist *eina_clist_prev(const Eina_Clist *list, const Eina_Clist *elem) -{ - Eina_Clist *ret = elem->prev; - if (elem->prev == list) ret = NULL; - return ret; -} +static inline Eina_Clist *eina_clist_prev(const Eina_Clist *list, const Eina_Clist *elem); /** * Get the first element. @@ -281,22 +237,16 @@ static inline Eina_Clist *eina_clist_prev(const Eina_Clist *list, const Eina_Cli * @returns The first element in @a list or NULL if @a list is empty * @since 1.1.0 */ -static inline Eina_Clist *eina_clist_head(const Eina_Clist *list) -{ - return eina_clist_next(list, list); -} +static inline Eina_Clist *eina_clist_head(const Eina_Clist *list); /** * Get the last element. * * @param list The list - * @returns The last element in @a list or NULL if @list is empty + * @returns The last element in @a list or NULL if @a list is empty * @since 1.1.0 */ -static inline Eina_Clist *eina_clist_tail(const Eina_Clist *list) -{ - return eina_clist_prev(list, list); -} +static inline Eina_Clist *eina_clist_tail(const Eina_Clist *list); /** * Check if a list is empty. @@ -305,10 +255,7 @@ static inline Eina_Clist *eina_clist_tail(const Eina_Clist *list) * @returns non-zero if @a list is empty, zero if it is not * @since 1.1.0 */ -static inline int eina_clist_empty(const Eina_Clist *list) -{ - return list->next == list; -} +static inline int eina_clist_empty(const Eina_Clist *list); /** * Initialize a list @@ -322,10 +269,7 @@ static inline int eina_clist_empty(const Eina_Clist *list) * initialize the list by zero'ing out the list head. * @since 1.1.0 */ -static inline void eina_clist_init(Eina_Clist *list) -{ - list->next = list->prev = list; -} +static inline void eina_clist_init(Eina_Clist *list); /** * Count the elements of a list @@ -334,13 +278,7 @@ static inline void eina_clist_init(Eina_Clist *list) * @returns The number of items in the list * @since 1.1.0 */ -static inline unsigned int eina_clist_count(const Eina_Clist *list) -{ - unsigned count = 0; - const Eina_Clist *ptr; - for (ptr = list->next; ptr != list; ptr = ptr->next) count++; - return count; -} +static inline unsigned int eina_clist_count(const Eina_Clist *list); /** * Move all elements from src to the tail of dst @@ -351,16 +289,7 @@ static inline unsigned int eina_clist_count(const Eina_Clist *list) * @post @a src is initialized but empty after this operation * @since 1.1.0 */ -static inline void eina_clist_move_tail(Eina_Clist *dst, Eina_Clist *src) -{ - if (eina_clist_empty(src)) return; - - dst->prev->next = src->next; - src->next->prev = dst->prev; - dst->prev = src->prev; - src->prev->next = dst; - eina_clist_init(src); -} +static inline void eina_clist_move_tail(Eina_Clist *dst, Eina_Clist *src); /** * move all elements from src to the head of dst @@ -371,16 +300,7 @@ static inline void eina_clist_move_tail(Eina_Clist *dst, Eina_Clist *src) * @post @a src is initialized but empty after this operation * @since 1.1.0 */ -static inline void eina_clist_move_head(Eina_Clist *dst, Eina_Clist *src) -{ - if (eina_clist_empty(src)) return; - - dst->next->prev = src->prev; - src->prev->next = dst->next; - dst->next = src->next; - src->next->prev = dst; - eina_clist_init(src); -} +static inline void eina_clist_move_head(Eina_Clist *dst, Eina_Clist *src); /** * iterate through the list @@ -441,15 +361,17 @@ static inline void eina_clist_move_head(Eina_Clist *dst, Eina_Clist *src) #define EINA_CLIST_ENTRY(elem, type, field) \ ((type *)((char *)(elem) - (unsigned long)(&((type *)0)->field))) -/* +#include "eina_inline_clist.x" + +/** * @} */ -/* +/** * @} */ -/* +/** * @} */ -- cgit v1.1