9 #include "opener_user_conf.h" 
   24   while(NULL != iterator) {
 
   26     iterator = iterator->
next;
 
   37   const void *
const data,
 
   41   new_node->
data = (
void *)data;
 
   56   if(NULL == list->
first) {
 
   57     list->
first = new_node;
 
   58     list->
last = new_node;
 
   62     list->
first = new_node;
 
   67                                   const void *
const data) {
 
   71   if(NULL == list->
last) {
 
   72     list->
first = new_node;
 
   73     list->
last = new_node;
 
   77     list->
last = new_node;
 
   85   if(list->
first == node) {
 
   91     new_node->
next = node;
 
  101   if(list->
last == node) {
 
  109     node->
next = new_node;
 
  120   if (node == list->
first && node == list->
last) {
 
  124     if(node == list->
first) {
 
  127     if(node == list->
last) {
 
  128       list->
last = previous;
 
  130     if(NULL != previous) {
 
  131       previous->
next = next;
 
void DoublyLinkedListInsertAtHead(DoublyLinkedList *const list, void *data)
DoublyLinkedListNode * first
#define OPENER_ASSERT(assertion)
DoublyLinkedListNode * previous
NodeMemoryAllocator allocator
void DoublyLinkedListRemoveNode(DoublyLinkedList *const list, DoublyLinkedListNode **pointer_to_node_pointer)
DoublyLinkedListNode * next
void DoublyLinkedListInsertAfterNode(DoublyLinkedList *const list, DoublyLinkedListNode *node, void *data)
void DoublyLinkedListNodeDestroy(const DoublyLinkedList *const list, DoublyLinkedListNode **node)
void DoublyLinkedListDestroy(DoublyLinkedList *list)
DoublyLinkedListNode * DoublyLinkedListNodeCreate(const void *const data, NodeMemoryAllocator const allocator)
void DoublyLinkedListInitialize(DoublyLinkedList *list, NodeMemoryAllocator allocator, NodeMemoryDeallocator deallocator)
void(* NodeMemoryDeallocator)(DoublyLinkedListNode **node)
void DoublyLinkedListInsertAtTail(DoublyLinkedList *const list, const void *const data)
NodeMemoryDeallocator deallocator
void DoublyLinkedListInsertBeforeNode(DoublyLinkedList *const list, DoublyLinkedListNode *node, void *data)
DoublyLinkedListNode *(* NodeMemoryAllocator)()
DoublyLinkedListNode * last