include: Add list_move_after() and list_move_before().
Cherry-picked from vkd3d commit a2996c2d59b140a0a92efc85d43c8f9b59540a12.
This commit is contained in:
parent
57c9bc9056
commit
099f84c4f0
1 changed files with 16 additions and 4 deletions
|
@ -150,8 +150,8 @@ static inline unsigned int list_count( const struct list *list )
|
|||
return count;
|
||||
}
|
||||
|
||||
/* move all elements from src to the tail of dst */
|
||||
static inline void list_move_tail( struct list *dst, struct list *src )
|
||||
/* move all elements from src to before the specified element */
|
||||
static inline void list_move_before( struct list *dst, struct list *src )
|
||||
{
|
||||
if (list_empty(src)) return;
|
||||
|
||||
|
@ -162,8 +162,8 @@ static inline void list_move_tail( struct list *dst, struct list *src )
|
|||
list_init(src);
|
||||
}
|
||||
|
||||
/* move all elements from src to the head of dst */
|
||||
static inline void list_move_head( struct list *dst, struct list *src )
|
||||
/* move all elements from src to after the specified element */
|
||||
static inline void list_move_after( struct list *dst, struct list *src )
|
||||
{
|
||||
if (list_empty(src)) return;
|
||||
|
||||
|
@ -174,6 +174,18 @@ static inline void list_move_head( struct list *dst, struct list *src )
|
|||
list_init(src);
|
||||
}
|
||||
|
||||
/* move all elements from src to the head of dst */
|
||||
static inline void list_move_head( struct list *dst, struct list *src )
|
||||
{
|
||||
list_move_after( dst, src );
|
||||
}
|
||||
|
||||
/* move all elements from src to the tail of dst */
|
||||
static inline void list_move_tail( struct list *dst, struct list *src )
|
||||
{
|
||||
list_move_before( dst, src );
|
||||
}
|
||||
|
||||
/* iterate through the list */
|
||||
#define LIST_FOR_EACH(cursor,list) \
|
||||
for ((cursor) = (list)->next; (cursor) != (list); (cursor) = (cursor)->next)
|
||||
|
|
Loading…
Add table
Reference in a new issue