X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/agedu/blobdiff_plain/acaf12ce5eade22797c4bcf3530e3bb4e929e261..2f23825bf6ba960e29d710dd9b83ec6973166ea7:/index.c diff --git a/index.c b/index.c index 28119c8..a74c165 100644 --- a/index.c +++ b/index.c @@ -9,9 +9,6 @@ #define alignof(typ) ( offsetof(struct { char c; typ t; }, t) ) -#define min(x,y) ((x)<(y) ? (x):(y)) -#define max(x,y) ((x)>(y) ? (x):(y)) - #define PADDING(x, mod) ( ((mod) - ((x) % (mod))) % (mod) ) struct avlnode { @@ -286,6 +283,19 @@ void indexbuild_free(indexbuild *ib) sfree(ib); } +int index_has_root(const void *t, int n) +{ + const off_t *roots; + + roots = (const off_t *)((const char *)t + trie_get_index_offset(t)); + + if (n == 0) + return 1; + if (n < 0 || n >= trie_count(t) || !roots[n-1]) + return 0; + return 1; +} + unsigned long long index_query(const void *t, int n, unsigned long long at) { const off_t *roots;