X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Flib%2Flinkedlist.qh;h=07d99b4f1226f73d843d0304e302d2439d6947e3;hb=e0e847a336cdb7ab1fcb93d3cf3e1402b761a726;hp=192ffd79a7dc1c672c87b3d3208033bdb31b15b7;hpb=87b1a8def06bcf477cb8dbd1b5e069c29ce0ab91;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/lib/linkedlist.qh b/qcsrc/lib/linkedlist.qh index 192ffd79a..07d99b4f1 100644 --- a/qcsrc/lib/linkedlist.qh +++ b/qcsrc/lib/linkedlist.qh @@ -1,5 +1,4 @@ -#ifndef LINKEDLIST_H -#define LINKEDLIST_H +#pragma once CLASS(LinkedListNode, Object) ATTRIB(LinkedListNode, ll_data, entity, NULL) @@ -45,7 +44,8 @@ entity LL_POP(LinkedList this) return e; } -#define LL_CLEAR(...) EVAL(OVERLOAD(LL_CLEAR, __VA_ARGS__)) +#define LL_CLEAR(...) EVAL_LL_CLEAR(OVERLOAD(LL_CLEAR, __VA_ARGS__)) +#define EVAL_LL_CLEAR(...) __VA_ARGS__ #define LL_CLEAR_1(this) LL_CLEAR_2(this, LAMBDA()) #define LL_CLEAR_2(this, dtor) \ MACRO_BEGIN \ @@ -61,12 +61,13 @@ entity LL_POP(LinkedList this) } \ } MACRO_END -#define LL_DELETE(...) EVAL(OVERLOAD(LL_DELETE, __VA_ARGS__)) +#define LL_DELETE(...) EVAL_LL_DELETE(OVERLOAD(LL_DELETE, __VA_ARGS__)) +#define EVAL_LL_DELETE(...) __VA_ARGS__ #define LL_DELETE_1(this) LL_DELETE_2(this, LAMBDA()) #define LL_DELETE_2(this, dtor) \ MACRO_BEGIN \ { \ - LL_CLEAR(this, dtor); \ + LL_CLEAR_2(this, dtor); \ remove(this); \ this = NULL; \ } MACRO_END @@ -81,5 +82,3 @@ entity LL_POP(LinkedList this) if (cond) { body } \ } \ } MACRO_END - -#endif