From 6d79a4cd68abffa33392d09b62d16a90803a92a3 Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 11 Jul 2025 19:02:53 +0200 Subject: Core/Misc: Improve LinkedList iteration - simplify code generated for begin, end and operator++ --- src/server/shared/Dynamic/LinkedReference/RefManager.h | 17 ++++++++--------- src/server/shared/Dynamic/LinkedReference/Reference.h | 10 ---------- 2 files changed, 8 insertions(+), 19 deletions(-) (limited to 'src/server/shared/Dynamic/LinkedReference') diff --git a/src/server/shared/Dynamic/LinkedReference/RefManager.h b/src/server/shared/Dynamic/LinkedReference/RefManager.h index 0c26d5d0d69..8a267fc28de 100644 --- a/src/server/shared/Dynamic/LinkedReference/RefManager.h +++ b/src/server/shared/Dynamic/LinkedReference/RefManager.h @@ -29,15 +29,14 @@ public: typedef LinkedListHead::Iterator const_iterator; RefManager() { } - ReferenceType* getFirst() { return static_cast(LinkedListHead::getFirst()); } + ReferenceType* front() { return front_impl(); } + ReferenceType const* front() const { return front_impl(); } - ReferenceType const* getFirst() const { return static_cast(LinkedListHead::getFirst()); } + iterator begin() { return begin_impl(); } + iterator end() { return end_impl(); } - iterator begin() { return iterator(getFirst()); } - iterator end() { return iterator(nullptr); } - - const_iterator begin() const { return const_iterator(getFirst()); } - const_iterator end() const { return const_iterator(nullptr); } + const_iterator begin() const { return begin_impl(); } + const_iterator end() const { return end_impl(); } virtual ~RefManager() { @@ -46,8 +45,8 @@ public: void clearReferences() { - while (ReferenceType* ref = getFirst()) - ref->invalidate(); + while (!empty()) + front()->invalidate(); } }; diff --git a/src/server/shared/Dynamic/LinkedReference/Reference.h b/src/server/shared/Dynamic/LinkedReference/Reference.h index 0c86386f5e2..2b58cbe5e4b 100644 --- a/src/server/shared/Dynamic/LinkedReference/Reference.h +++ b/src/server/shared/Dynamic/LinkedReference/Reference.h @@ -81,16 +81,6 @@ template class Reference : public LinkedLi return iRefTo != nullptr; } - Derived * next() { return static_cast(LinkedListElement::next()); } - Derived const* next() const { return static_cast(LinkedListElement::next()); } - Derived * prev() { return static_cast(LinkedListElement::prev()); } - Derived const* prev() const { return static_cast(LinkedListElement::prev()); } - - Derived * nocheck_next() { return static_cast(LinkedListElement::nocheck_next()); } - Derived const* nocheck_next() const { return static_cast(LinkedListElement::nocheck_next()); } - Derived * nocheck_prev() { return static_cast(LinkedListElement::nocheck_prev()); } - Derived const* nocheck_prev() const { return static_cast(LinkedListElement::nocheck_prev()); } - TO* operator->() const { return iRefTo; } TO* getTarget() const { return iRefTo; } -- cgit v1.2.3