Data Structures | |
struct | di_list |
Double-linked list. More... | |
struct | di_list_node |
Node of a double-linked list. More... | |
Functions | |
di_list * | di_list_alloc (void) |
void | di_list_destroy (di_list *list, di_destroy_notify destroy_func) __attribute__((nonnull(1))) |
void | di_list_free (di_list *list) |
void | di_list_append (di_list *list, void *data) __attribute__((nonnull(1))) |
void | di_list_append_chunk (di_list *list, void *data, di_mem_chunk *mem_chunk) __attribute__((nonnull(1 |
void void | di_list_prepend (di_list *list, void *data) __attribute__((nonnull(1))) |
void | di_list_prepend_chunk (di_list *list, void *data, di_mem_chunk *mem_chunk) __attribute__((nonnull(1 |
|
Allocate a double-linked list
00030 { 00031 di_list *list; 00032 00033 list = di_new0 (di_list, 1); 00034 00035 return list; 00036 }
|
|
Append to a double-linked list
00073 { 00074 return internal_di_list_append (list, data, di_new (di_list_node, 1)); 00075 }
|
|
Append to a double-linked list
|
|
Destroy the contents of a double-linked list
00039 { 00040 di_list_node *node, *temp; 00041 00042 node = list->head; 00043 while (node) 00044 { 00045 temp = node; 00046 node = node->next; 00047 if (destroy_func) 00048 destroy_func (temp->data); 00049 di_free (temp); 00050 } 00051 }
|
|
Free a double-linked list
00054 { 00055 di_free (list); 00056 }
|
|
Prepend to a double-linked list
00097 { 00098 return internal_di_list_prepend (list, data, di_new (di_list_node, 1)); 00099 }
|
|
Prepend to a double-linked list
|