~mdw
/
sgt
/
agedu
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Change the magic number used to introduce a trie file, so that instead
[sgt/agedu]
/
index.c
diff --git
a/index.c
b/index.c
index
28119c8
..
f4b9801
100644
(file)
--- a/
index.c
+++ b/
index.c
@@
-9,9
+9,6
@@
#define alignof(typ) ( offsetof(struct { char c; typ t; }, t) )
#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 {
#define PADDING(x, mod) ( ((mod) - ((x) % (mod))) % (mod) )
struct avlnode {
@@
-72,11
+69,11
@@
struct indexbuild {
};
#define ELEMENT(t,offset) \
};
#define ELEMENT(t,offset) \
- ((
offset) ? (struct trie_file *)((char *)(t) + (offset)) : NULL
)
+ ((
struct trie_file *) ((offset) ? ((char *)(t) + (offset)) : NULL)
)
#define NODE(t,offset) \
#define NODE(t,offset) \
- ((
offset) ? (struct avlnode *)((char *)(t) + (offset)) : NULL
)
+ ((
struct avlnode *) ((offset) ? ((char *)(t) + (offset)) : NULL)
)
#define OFFSET(t,node) \
#define OFFSET(t,node) \
- ((node) ? (off_t)((const char *)node - (const char *)t) : 0)
+ ((node) ? (off_t)((const char *)node - (const char *)t) :
(off_t)
0)
#define MAXDEPTH(node) ((node) ? (node)->maxdepth : 0)
indexbuild *indexbuild_new(void *t, off_t startoff, int nodecount,
#define MAXDEPTH(node) ((node) ? (node)->maxdepth : 0)
indexbuild *indexbuild_new(void *t, off_t startoff, int nodecount,
@@
-286,6
+283,19
@@
void indexbuild_free(indexbuild *ib)
sfree(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;
unsigned long long index_query(const void *t, int n, unsigned long long at)
{
const off_t *roots;