-list_node_t *list_insert_after(list_t *list, list_node_t *after, void *data) {
- list_node_t *node = list_alloc_node();
-
- node->data = data;
- node->next = after->next;
- node->prev = after;
- after->next = node;
-
- if(node->next)
- node->next->prev = node;
- else
- list->tail = node;
-
- list->count++;
-
- return node;
-}
-
-list_node_t *list_insert_before(list_t *list, list_node_t *before, void *data) {
- list_node_t *node;
-
- node = list_alloc_node();
+static void list_unlink_node(list_t *list, list_node_t *node) {
+ assert(list->count);
+ assert(node->prev || list->head == node);
+ assert(node->next || list->tail == node);