Mercurial > ~dholland > hg > ag > index.cgi
view help2html/uintarray.h @ 8:ec2b657edf13
Add explicit lint-comment-style fallthrough annotations.
GCC now assumes that if you don't have these you're making a mistake,
which is annoying.
XXX: This changeset updates the AG output files only (by hand) and is
XXX: abusive - rebuilding them will erase the change. However, I need
XXX: to get things to build before I can try to get AG to issue the
XXX: annotations itself, so this seems like a reasonable expedient.
author | David A. Holland |
---|---|
date | Mon, 30 May 2022 23:51:43 -0400 |
parents | 13d2b8934445 |
children | 60b08b68c750 |
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); unsigned uintarray_num(const struct uintarray *a); unsigned uintarray_get(const struct uintarray *a, unsigned ix); 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)); extern inline unsigned uintarray_num(const struct uintarray *a) { return a->num; } extern inline unsigned uintarray_get(const struct uintarray *a, unsigned ix) { assert(ix < a->num); return a->v[ix]; } extern inline void uintarray_set(struct uintarray *a, unsigned ix, unsigned val) { assert(ix < a->num); a->v[ix] = val; }