Mercurial > ~dholland > hg > ag > index.cgi
view help2html/uintarray.h @ 14:a02e9434072e
Fix friend declaration for gcc10.
XXX: did not check it against the IBM compiler, might end up needing
XXX: to be conditional.
author | David A. Holland |
---|---|
date | Tue, 31 May 2022 00:59:42 -0400 |
parents | 60b08b68c750 |
children |
line wrap: on
line source
#include <assert.h> /* treat as opaque */ struct uintarray { unsigned *v; unsigned num, max; }; struct uintarray *uintarray_create(void); void uintarray_init(struct uintarray *a); void uintarray_cleanup(struct uintarray *a); void uintarray_destroy(struct uintarray *a); static inline unsigned uintarray_num(const struct uintarray *a); static inline unsigned uintarray_get(const struct uintarray *a, unsigned ix); static inline void uintarray_set(struct uintarray *a, unsigned ix, unsigned val); void uintarray_add(struct uintarray *a, unsigned val); void uintarray_setsize(struct uintarray *a, unsigned newsize); /* x and y are pointers that were placed in the uintarray */ void uintarray_sort(struct uintarray *a, int (*f)(unsigned x, unsigned y)); static inline unsigned uintarray_num(const struct uintarray *a) { return a->num; } static inline unsigned uintarray_get(const struct uintarray *a, unsigned ix) { assert(ix < a->num); return a->v[ix]; } static inline void uintarray_set(struct uintarray *a, unsigned ix, unsigned val) { assert(ix < a->num); a->v[ix] = val; }