diff --git a/src/util/dlist.h b/src/util/dlist.h index df28217c0..7efe5bb53 100644 --- a/src/util/dlist.h +++ b/src/util/dlist.h @@ -40,6 +40,22 @@ public: 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) {