From e8e64d3098b3c22a0d616c512ddc3bef5bc27302 Mon Sep 17 00:00:00 2001 From: Jakob Rath Date: Mon, 1 Aug 2022 14:53:41 +0200 Subject: [PATCH] dlist::insert_before/after --- src/util/dlist.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/util/dlist.h b/src/util/dlist.h index df28217c0ed..7efe5bb53bd 100644 --- a/src/util/dlist.h +++ b/src/util/dlist.h @@ -40,6 +40,22 @@ class dll_base { remove_from(list, head); return head; } + + void insert_after(T* elem) { + T* next = this->m_next; + elem->m_prev = next->m_prev; + elem->m_next = next; + this->m_next = elem; + next->m_prev = elem; + } + + void insert_before(T* elem) { + T* prev = this->m_prev; + elem->m_next = prev->m_next; + elem->m_prev = prev; + prev->m_next = elem; + this->m_prev = elem; + } static void remove_from(T*& list, T* elem) { if (list->m_next == list) {