From da69f272333cc7820edf784b004c2656105d8661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 13 Oct 2003 03:19:21 +0000 Subject: [PATCH] The iterator was broken. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5006 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/kernel/util/DoublyLinkedList.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/headers/private/kernel/util/DoublyLinkedList.h b/headers/private/kernel/util/DoublyLinkedList.h index 2a3a6b79cb..33b9345469 100644 --- a/headers/private/kernel/util/DoublyLinkedList.h +++ b/headers/private/kernel/util/DoublyLinkedList.h @@ -68,7 +68,7 @@ class List { IteratorType Iterator() { - return IteratorType(*this); + return IteratorType(this); } bool IsEmpty() @@ -93,6 +93,7 @@ class List { } private: + friend class IteratorType; Link fLink; }; @@ -102,11 +103,11 @@ class Iterator { typedef List ListType; Iterator() : fCurrent(NULL) {} - Iterator(ListType &list) : fCurrent(list.Head()) {} + Iterator(ListType *list) : fList(list), fCurrent(list->Head()) {} Item *Next() { - if (fCurrent->next == NULL) + if (fCurrent == &fList->fLink) return NULL; Link *current = fCurrent; @@ -116,6 +117,7 @@ class Iterator { } private: + ListType *fList; Link *fCurrent; };