/* adlist.c - A generic doubly linked list implementation
*
- * Copyright (c) 2006-2009, Salvatore Sanfilippo <antirez at gmail dot com>
+ * Copyright (c) 2006-2010, Salvatore Sanfilippo <antirez at gmail dot com>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
}
/* Create an iterator in the list private iterator structure */
-void listRewind(list *list) {
- list->iter.next = list->head;
- list->iter.direction = AL_START_HEAD;
+void listRewind(list *list, listIter *li) {
+ li->next = list->head;
+ li->direction = AL_START_HEAD;
}
-void listRewindTail(list *list) {
- list->iter.next = list->tail;
- list->iter.direction = AL_START_TAIL;
+void listRewindTail(list *list, listIter *li) {
+ li->next = list->tail;
+ li->direction = AL_START_TAIL;
}
/* Return the next element of an iterator.
return current;
}
-/* List Yield just call listNext() against the list private iterator */
-listNode *listYield(list *list) {
- return listNext(&list->iter);
-}
-
/* Duplicate the whole list. On out of memory NULL is returned.
* On success a copy of the original list is returned.
*