diff options
| author | Lennart Poettering <lennart@poettering.net> | 2007-09-12 22:50:44 +0000 | 
|---|---|---|
| committer | Lennart Poettering <lennart@poettering.net> | 2007-09-12 22:50:44 +0000 | 
| commit | 03f311a464fcf7cb295b996a4cda48e90941bef0 (patch) | |
| tree | f328a6357ad2ac62d120271de317f4e12477763c | |
| parent | 41378658153585c82eebca83d280b25f684e90c4 (diff) | |
reindent, and s/assert/pa_assert/g
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1814 fefdeb5f-60dc-0310-8127-8f9354f1896f
| -rw-r--r-- | src/pulsecore/llist.h | 123 | 
1 files changed, 66 insertions, 57 deletions
diff --git a/src/pulsecore/llist.h b/src/pulsecore/llist.h index 8fc8e22b..e62f15b4 100644 --- a/src/pulsecore/llist.h +++ b/src/pulsecore/llist.h @@ -24,77 +24,86 @@    USA.  ***/ -#include <assert.h> +#include <pulsecore/macro.h>  /* Some macros for maintaining doubly linked lists */  /* The head of the linked list. Use this in the structure that shall   * contain the head of the linked list */ -#define PA_LLIST_HEAD(t,name) t *name +#define PA_LLIST_HEAD(t,name)                                           \ +    t *name  /* The pointers in the linked list's items. Use this in the item structure */ -#define PA_LLIST_FIELDS(t) t *next, *prev +#define PA_LLIST_FIELDS(t)                                              \ +    t *next, *prev  /* Initialize the list's head */ -#define PA_LLIST_HEAD_INIT(t,item) do { (item) = (t*) NULL; } while(0) +#define PA_LLIST_HEAD_INIT(t,item)                                      \ +    do {                                                                \ +        (item) = (t*) NULL; }                                           \ +    while(0)  /* Initialize a list item */ -#define PA_LLIST_INIT(t,item) do { \ -                               t *_item = (item); \ -                               assert(_item); \ -                               _item->prev = _item->next = NULL; \ -                               } while(0) +#define PA_LLIST_INIT(t,item)                                           \ +    do {                                                                \ +        t *_item = (item);                                              \ +        pa_assert(_item);                                               \ +        _item->prev = _item->next = NULL;                               \ +    } while(0)  /* Prepend an item to the list */ -#define PA_LLIST_PREPEND(t,head,item) do { \ -                                        t **_head = &(head), *_item = (item); \ -                                        assert(_item); \ -                                        if ((_item->next = *_head)) \ -                                           _item->next->prev = _item; \ -                                        _item->prev = NULL; \ -                                        *_head = _item; \ -                                        } while (0) +#define PA_LLIST_PREPEND(t,head,item)                                   \ +    do {                                                                \ +        t **_head = &(head), *_item = (item);                           \ +        pa_assert(_item);                                               \ +        if ((_item->next = *_head))                                     \ +            _item->next->prev = _item;                                  \ +        _item->prev = NULL;                                             \ +        *_head = _item;                                                 \ +    } while (0)  /* Remove an item from the list */ -#define PA_LLIST_REMOVE(t,head,item) do { \ -                                    t **_head = &(head), *_item = (item); \ -                                    assert(_item); \ -                                    if (_item->next) \ -                                       _item->next->prev = _item->prev; \ -                                    if (_item->prev) \ -                                       _item->prev->next = _item->next; \ -                                    else {\ -                                       assert(*_head == _item); \ -                                       *_head = _item->next; \ -                                    } \ -                                    _item->next = _item->prev = NULL; \ -                                    } while(0) - -#define PA_LLIST_FIND_HEAD(t,item,head) \ -do { \ -    t **_head = (head), *_item = (item); \ -    *_head = _item; \ -    assert(_head); \ -    while ((*_head)->prev) \ -        *_head = (*_head)->prev; \ -} while (0) - -#define PA_LLIST_INSERT_AFTER(t,head,a,b) \ -do { \ -    t **_head = &(head), *_a = (a), *_b = (b); \ -    assert(_b); \ -    if (!_a) { \ -        if ((_b->next = *_head)) \ -            _b->next->prev = _b; \ -        _b->prev = NULL; \ -        *_head = _b; \ -    } else { \ -        if ((_b->next = _a->next)) \ -            _b->next->prev = _b; \ -        _b->prev = _a; \ -        _a->next = _b; \ -    } \ -} while (0) - +#define PA_LLIST_REMOVE(t,head,item)                                    \ +    do {                                                                \ +        t **_head = &(head), *_item = (item);                           \ +        pa_assert(_item);                                               \ +        if (_item->next)                                                \ +            _item->next->prev = _item->prev;                            \ +        if (_item->prev)                                                \ +            _item->prev->next = _item->next;                            \ +        else {                                                          \ +            pa_assert(*_head == _item);                                 \ +            *_head = _item->next;                                       \ +        }                                                               \ +        _item->next = _item->prev = NULL;                               \ +    } while(0) + +/* Find the head of the list */ +#define PA_LLIST_FIND_HEAD(t,item,head)                                 \ +    do {                                                                \ +        t **_head = (head), *_item = (item);                            \ +        *_head = _item;                                                 \ +        pa_assert(_head);                                               \ +        while ((*_head)->prev)                                          \ +            *_head = (*_head)->prev;                                    \ +    } while (0) + +/* Insert an item after another one (a = where, b = what) */ +#define PA_LLIST_INSERT_AFTER(t,head,a,b)                               \ +    do {                                                                \ +        t **_head = &(head), *_a = (a), *_b = (b);                      \ +        pa_assert(_b);                                                  \ +        if (!_a) {                                                      \ +            if ((_b->next = *_head))                                    \ +                _b->next->prev = _b;                                    \ +            _b->prev = NULL;                                            \ +            *_head = _b;                                                \ +        } else {                                                        \ +            if ((_b->next = _a->next))                                  \ +                _b->next->prev = _b;                                    \ +            _b->prev = _a;                                              \ +            _a->next = _b;                                              \ +        }                                                               \ +    } while (0)  #endif  | 
