feat(list): add link type defines

This commit is contained in:
fallenoak 2025-10-03 20:03:04 -05:00
parent b8032a375f
commit dc9f9c1958
No known key found for this signature in database
GPG key ID: 7628F8E61AEA070D

View file

@ -8,6 +8,11 @@
#include <cstdint> #include <cstdint>
#include <typeinfo> #include <typeinfo>
#define STORM_LIST_LINK_AFTER 1
#define STORM_LIST_LINK_BEFORE 2
#define STORM_LIST_HEAD STORM_LIST_LINK_AFTER
#define STORM_LIST_TAIL STORM_LIST_LINK_BEFORE
#define STORM_LIST(T) TSList<T, TSGetLink<T>> #define STORM_LIST(T) TSList<T, TSGetLink<T>>
template <class T, class TGetLink> template <class T, class TGetLink>
@ -124,7 +129,7 @@ void TSList<T, TGetLink>::LinkNode(T* ptr, uint32_t linktype, T* existingptr) {
TSLink<T>* v8; TSLink<T>* v8;
switch (linktype) { switch (linktype) {
case 1: case STORM_LIST_LINK_AFTER:
// After existingptr // After existingptr
v5->m_prevlink = v7; v5->m_prevlink = v7;
v5->m_next = v7->m_next; v5->m_next = v7->m_next;
@ -133,7 +138,7 @@ void TSList<T, TGetLink>::LinkNode(T* ptr, uint32_t linktype, T* existingptr) {
break; break;
case 2: case STORM_LIST_LINK_BEFORE:
// Before existingptr // Before existingptr
v8 = v7->m_prevlink; v8 = v7->m_prevlink;
v5->m_prevlink = v7->m_prevlink; v5->m_prevlink = v7->m_prevlink;
@ -151,12 +156,12 @@ void TSList<T, TGetLink>::LinkNode(T* ptr, uint32_t linktype, T* existingptr) {
template <class T, class TGetLink> template <class T, class TGetLink>
void TSList<T, TGetLink>::LinkToHead(T* ptr) { void TSList<T, TGetLink>::LinkToHead(T* ptr) {
this->LinkNode(ptr, 1, nullptr); this->LinkNode(ptr, STORM_LIST_HEAD, nullptr);
} }
template <class T, class TGetLink> template <class T, class TGetLink>
void TSList<T, TGetLink>::LinkToTail(T* ptr) { void TSList<T, TGetLink>::LinkToTail(T* ptr) {
this->LinkNode(ptr, 2, nullptr); this->LinkNode(ptr, STORM_LIST_TAIL, nullptr);
} }
template <class T, class TGetLink> template <class T, class TGetLink>