diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc/include/isc/list.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/libc/include/isc/list.h b/lib/libc/include/isc/list.h index 8a6973a..fef631b 100644 --- a/lib/libc/include/isc/list.h +++ b/lib/libc/include/isc/list.h @@ -73,12 +73,16 @@ INSIST(LINKED(elt, link));\ if ((elt)->link.next != NULL) \ (elt)->link.next->link.prev = (elt)->link.prev; \ - else \ + else { \ + INSIST((list).tail == (elt)); \ (list).tail = (elt)->link.prev; \ + } \ if ((elt)->link.prev != NULL) \ (elt)->link.prev->link.next = (elt)->link.next; \ - else \ + else { \ + INSIST((list).head == (elt)); \ (list).head = (elt)->link.next; \ + } \ INIT_LINK_TYPE(elt, link, type); \ } while (0) #define UNLINK(list, elt, link) \ @@ -117,3 +121,4 @@ #define DEQUEUE(list, elt, link) UNLINK(list, elt, link) #endif /* LIST_H */ +/*! \file */ |