X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Flib%2Fintrusivelist.qh;h=fc0e080eae32fa103333559653d439a403895cb2;hb=d865de7a9a17c5a1d9286aec40f68c3530697660;hp=4fa49d3f3bfef7bc41035a9bb56e35cf1db755a4;hpb=2f215c603bf1b4dd44b9d166180f535c88602e9f;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/lib/intrusivelist.qh b/qcsrc/lib/intrusivelist.qh index 4fa49d3f3..fc0e080ea 100644 --- a/qcsrc/lib/intrusivelist.qh +++ b/qcsrc/lib/intrusivelist.qh @@ -4,8 +4,11 @@ const int IL_MAX = 128; +ERASEABLE void IL_INIT(entity this); +ERASEABLE void IL_DTOR(entity this); +ERASEABLE void IL_ENDFRAME(); /** @@ -37,6 +40,7 @@ ENDCLASS(IntrusiveList) #define IL_LAST(this) (this.il_tail) #define IL_PEEK(this) (this.il_tail) +ERASEABLE bool IL_CONTAINS(IntrusiveList this, entity it) { assert(this, return false); @@ -46,6 +50,7 @@ bool IL_CONTAINS(IntrusiveList this, entity it) /** * Push to tail */ +ERASEABLE entity IL_PUSH(IntrusiveList this, entity it) { assert(this, return NULL); @@ -64,6 +69,7 @@ entity IL_PUSH(IntrusiveList this, entity it) /** * Push to head */ +ERASEABLE entity IL_UNSHIFT(IntrusiveList this, entity it) { assert(this, return NULL); @@ -82,6 +88,7 @@ entity IL_UNSHIFT(IntrusiveList this, entity it) /** * Pop from tail */ +ERASEABLE entity IL_POP(IntrusiveList this) { assert(this, return NULL); @@ -99,6 +106,7 @@ entity IL_POP(IntrusiveList this) /** * Pop from head */ +ERASEABLE entity IL_SHIFT(IntrusiveList this) { assert(this, return NULL); @@ -116,6 +124,7 @@ entity IL_SHIFT(IntrusiveList this) /** * Remove any element, anywhere in the list */ +ERASEABLE void IL_REMOVE(IntrusiveList this, entity it) { assert(this, return); @@ -180,6 +189,7 @@ int il_links_ptr; #define IL_LISTS_PER_BIT IL_CEIL(IL_MAX / (3 * 24)) +ERASEABLE void IL_INIT(IntrusiveList this) { .entity nextfld, prevfld; @@ -208,12 +218,14 @@ void IL_INIT(IntrusiveList this) LOG_WARNF("IntrusiveList overflow"); } +ERASEABLE void IL_DTOR(IntrusiveList this) { IL_CLEAR(this); il_links[this.il_id] = NULL; } +ERASEABLE void IL_ENDFRAME() { #if 0 @@ -233,6 +245,7 @@ void IL_ENDFRAME() #endif } +ERASEABLE void ONREMOVE(entity this) { if (this.il_lists) {