X-Git-Url: http://git.madism.org/?a=blobdiff_plain;ds=sidebyside;f=common%2Farray.h;h=04a632b82ef04c2f5853f619aabb498f4fdb03bc;hb=00bae73b4873e9c1e8d5526feecdb275f7bb756f;hp=b85fc502d46838da861731ba91374605eeaf468c;hpb=d66ec885e2c3680b1b42e5cf99b18865c6c1736c;p=apps%2Fpfixtools.git diff --git a/common/array.h b/common/array.h index b85fc50..04a632b 100644 --- a/common/array.h +++ b/common/array.h @@ -60,6 +60,7 @@ p_delete(array); \ } \ } +#define A(Type) Type ## _array_t #define ARRAY_INIT { NULL, 0, 0 } @@ -107,6 +108,16 @@ #define array_elt(array, n) (array).data[(n)] #define array_ptr(array, n) (array).data + (n) +#define array_foreach(array, action) \ + for (int __Ai = 0 ; __Ai < (array).len ; ++__Ai) { \ + action(array_ptr(array, __Ai)); \ + } +#define array_deep_wipe(array, wipe) \ + do { \ + array_foreach(array, wipe); \ + array_wipe(array); \ + } while (0) + ARRAY(char) ARRAY(int)