X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Flib%2Flinkedlist.qh;h=0dd430722f755218f5f796883a5dcf4317caf885;hb=674f7d8d217f613506dfe45110d666220bcb6335;hp=a8e4aaa090a0ac9ec09a9fad0c1a047ec86337a4;hpb=724a41faf2cbfd86d41f3ab59ff8326a831a8326;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/lib/linkedlist.qh b/qcsrc/lib/linkedlist.qh index a8e4aaa09..0dd430722 100644 --- a/qcsrc/lib/linkedlist.qh +++ b/qcsrc/lib/linkedlist.qh @@ -1,14 +1,14 @@ #pragma once CLASS(LinkedListNode, Object) - ATTRIB(LinkedListNode, ll_data, entity, NULL) - ATTRIB(LinkedListNode, ll_prev, LinkedListNode, NULL) - ATTRIB(LinkedListNode, ll_next, LinkedListNode, NULL) + ATTRIB(LinkedListNode, ll_data, entity); + ATTRIB(LinkedListNode, ll_prev, LinkedListNode); + ATTRIB(LinkedListNode, ll_next, LinkedListNode); ENDCLASS(LinkedListNode) CLASS(LinkedList, Object) - ATTRIB(LinkedList, ll_head, LinkedListNode, NULL); - ATTRIB(LinkedList, ll_tail, LinkedListNode, NULL); + ATTRIB(LinkedList, ll_head, LinkedListNode); + ATTRIB(LinkedList, ll_tail, LinkedListNode); ENDCLASS(LinkedList) #define LL_NEW() NEW(LinkedList) @@ -40,7 +40,7 @@ entity LL_POP(LinkedList this) LinkedListNode prev = n.ll_prev; if (prev) (this.ll_tail = prev).ll_next = NULL; else this.ll_head = this.ll_tail = NULL; - remove(n); + delete(n); return e; } @@ -57,7 +57,7 @@ entity LL_POP(LinkedList this) entity it = LL_POP(_ll); \ if (!it) continue; \ dtor \ - remove(it); \ + delete(it); \ } \ } MACRO_END @@ -67,8 +67,8 @@ entity LL_POP(LinkedList this) #define LL_DELETE_2(this, dtor) \ MACRO_BEGIN \ { \ - LL_CLEAR(this, dtor); \ - remove(this); \ + LL_CLEAR_2(this, dtor); \ + delete(this); \ this = NULL; \ } MACRO_END @@ -78,7 +78,7 @@ entity LL_POP(LinkedList this) noref int i = 0; \ for (entity _it = list.ll_head; _it; (_it = _it.ll_next, ++i)) \ { \ - noref entity it = _it.ll_data; \ + ITER_CONST noref entity it = _it.ll_data; \ if (cond) { body } \ } \ } MACRO_END