From 15594f62fe76d986ebf10c1965798df5c8cc97fd Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Fri, 27 Mar 2026 00:02:11 -0400 Subject: [PATCH] DoublyLinkedList: Make DoublyLinkedListCLink more useful. Before, it just used a hardcoded Element::link member. Now, it uses whatever one is specified based on the template arguments. No source compatibility breakage intended. Change-Id: I62128921766df0b705488eb64402f902334f2ed0 Reviewed-on: https://review.haiku-os.org/c/haiku/+/10589 Reviewed-by: waddlesplash Tested-by: Commit checker robot Haiku-Format: Haiku-format Bot --- headers/private/util/DoublyLinkedList.h | 27 +++++++++++++------------ 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/headers/private/util/DoublyLinkedList.h b/headers/private/util/DoublyLinkedList.h index 6194567e6e..622aa2b71d 100644 --- a/headers/private/util/DoublyLinkedList.h +++ b/headers/private/util/DoublyLinkedList.h @@ -83,22 +83,23 @@ public: } }; -// DoublyLinkedListCLink - interface to struct list -template +// DoublyLinkedListCLink - interface to struct list (or equivalent) +template class DoublyLinkedListCLink { - private: - typedef DoublyLinkedListLink Link; +private: + typedef DoublyLinkedListLink Link; - public: - inline Link* operator()(Element* element) const - { - return (Link*)&element->link; - } +public: + inline Link* operator()(Element* element) const + { + return (Link*)&(element->*LinkMember); + } - inline const Link* operator()(const Element* element) const - { - return (const Link*)&element->link; - } + inline const Link* operator()(const Element* element) const + { + return (Link*)&(element->*LinkMember); + } }; // for convenience