32 #if FF_API_CONTEXT_SIZE
42 int (*
cmp)(
void *key,
const void *
b),
void *next[2])
45 unsigned int v =
cmp(key, t->
elem);
48 next[v >> 31] = t->
elem;
66 unsigned int v =
cmp(t->
elem, key);
75 key = t->
elem = next_elem[i];
85 int i = (v >> 31) ^ !!*next;
87 t->
state += 2 * i - 1;
89 if (!(t->
state & 1)) {
111 if ((*child)->state * 2 == -t->
state) {
112 *tp = (*child)->
child[i ^ 1];
115 *child = (*tp)->
child[i ^ 1];
118 (*tp)->child[0]->state = -((*tp)->state > 0);
119 (*tp)->child[1]->state = (*tp)->state < 0;
123 *child = (*child)->
child[i ^ 1];
129 (*tp)->state = -t->
state;
133 if (!(*tp)->state ^ !!*next)
158 int (*
cmp)(
void *opaque,
void *
elem),
159 int (*enu)(
void *opaque,
void *elem))
166 enu(opaque, t->
elem);
183 if (left > 999 || right > 999)
185 if (right - left != t->
state)
189 return FFMAX(left, right) + 1;
197 for (i = 0; i < depth * 4; i++)
201 print(t->
child[0], depth + 1);
202 print(t->
child[1], depth + 1);
207 static int cmp(
void *
a,
const void *
b)
220 for (i = 0; i < 10000; i++) {
223 void *ret, *jj = (
void *)(j + 1);
227 jj = (
void *)(j + 1);
230 if (
check(root) > 999) {
246 jj = (
void *)(j + 1);