X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Flib%2Farraylist.qh;h=a10dcaa7b919b0c60299393c715bdfb6d1130b5f;hp=209004b64839c018a4d4ab2287033d4f7a6b12db;hb=991de5e6922cd3c283de56c3249624f0f1bfe767;hpb=10c0be8573ea4ab40c24c4a4267f445e00b63857 diff --git a/qcsrc/lib/arraylist.qh b/qcsrc/lib/arraylist.qh index 209004b64..a10dcaa7b 100644 --- a/qcsrc/lib/arraylist.qh +++ b/qcsrc/lib/arraylist.qh @@ -1,12 +1,11 @@ #pragma once -typedef entity ArrayList; +USING(ArrayList, entity); .int al_buf; .int al_len; #define AL_NEW(this, n, default, T) \ MACRO_BEGIN \ - { \ ArrayList _al = this = new_pure(ArrayList); \ _al.al_buf = buf_create(); \ for (int i = 0, _n = _al.al_len = n; i < _n; ++i) \ @@ -14,15 +13,14 @@ typedef entity ArrayList; const _AL_type__##T() it = default; \ AL_set##T(this, i, it); \ } \ - } MACRO_END + MACRO_END #define AL_DELETE(this) \ MACRO_BEGIN \ - { \ buf_del(this.al_buf); \ - remove(this); \ + delete(this); \ this = NULL; \ - } MACRO_END + MACRO_END #define _AL_type__s() string #define AL_gets(this, idx) bufstr_get(this.al_buf, idx) @@ -60,11 +58,10 @@ entity al_ftoe(int i) = #80; #define AL_EACH(this, T, cond, body) \ MACRO_BEGIN \ - { \ const noref ArrayList _al = this; \ for (int i = 0, n = _al.al_len; i < n; ++i) \ { \ const noref _AL_type__##T() it = AL_get##T(_al, i); \ if (cond) { body } \ } \ - } MACRO_END + MACRO_END