2 * i3bar - an xcb-based status- and ws-bar for i3
4 * © 2010 Axel Wagner and contributors
6 * See file LICNSE for license information
15 #define FREE(p) do { \
22 /* Securely fee single-linked list */
23 #define FREE_SLIST(l, type) do { \
24 type *walk = SLIST_FIRST(l); \
25 while (!SLIST_EMPTY(l)) { \
26 SLIST_REMOVE_HEAD(l, slist); \
28 walk = SLIST_FIRST(l); \
34 /* Securely fee tail-queues */
35 #define FREE_TAILQ(l, type) do { \
36 type *walk = TAILQ_FIRST(l); \
37 while (!TAILQ_EMPTY(l)) { \
38 TAILQ_REMOVE(l, TAILQ_FIRST(l), tailq); \
40 walk = TAILQ_FIRST(l); \