]> git.saurik.com Git - redis.git/blobdiff - src/adlist.c
Memory addressing test implemented.
[redis.git] / src / adlist.c
index 51ba03bd5e0774fa8e9f6623e26858d97d633bd7..e48957e3af93fb440c61d285c1cb9f156f650d06 100644 (file)
@@ -323,3 +323,19 @@ listNode *listIndex(list *list, long index) {
     }
     return n;
 }
+
+/* Rotate the list removing the tail node and inserting it to the head. */
+void listRotate(list *list) {
+    listNode *tail = list->tail;
+
+    if (listLength(list) <= 1) return;
+
+    /* Detatch current tail */
+    list->tail = tail->prev;
+    list->tail->next = NULL;
+    /* Move it as head */
+    list->head->prev = tail;
+    tail->prev = NULL;
+    tail->next = list->head;
+    list->head = tail;
+}