|
|
@ -424,15 +424,16 @@ struct { \
|
|
|
|
#define AST_LIST_REMOVE(head, elm, field) do { \
|
|
|
|
#define AST_LIST_REMOVE(head, elm, field) do { \
|
|
|
|
if ((head)->first == (elm)) { \
|
|
|
|
if ((head)->first == (elm)) { \
|
|
|
|
(head)->first = (elm)->field.next; \
|
|
|
|
(head)->first = (elm)->field.next; \
|
|
|
|
} \
|
|
|
|
if ((head)->last = (elm)) \
|
|
|
|
else { \
|
|
|
|
(head)->last = NULL; \
|
|
|
|
|
|
|
|
} else { \
|
|
|
|
typeof(elm) curelm = (head)->first; \
|
|
|
|
typeof(elm) curelm = (head)->first; \
|
|
|
|
while (curelm->field.next != (elm)) \
|
|
|
|
while (curelm->field.next != (elm)) \
|
|
|
|
curelm = curelm->field.next; \
|
|
|
|
curelm = curelm->field.next; \
|
|
|
|
curelm->field.next = (elm)->field.next; \
|
|
|
|
curelm->field.next = (elm)->field.next; \
|
|
|
|
|
|
|
|
if ((head)->last == curelm->field.next) \
|
|
|
|
|
|
|
|
(head)->last = curelm; \
|
|
|
|
} \
|
|
|
|
} \
|
|
|
|
if ((head)->last == elm) \
|
|
|
|
|
|
|
|
(head)->last = NULL; \
|
|
|
|
|
|
|
|
} while (0)
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* _ASTERISK_LINKEDLISTS_H */
|
|
|
|
#endif /* _ASTERISK_LINKEDLISTS_H */
|
|
|
|