65 static unsigned int ph = 32;
97 for (j = 0; j < memlist->
list->
nelts; j++) {
143 for (j = 0; j < memlist->
list->
nelts; j++) {
230 return ((
ac <
bc) ? -1 : ((
ac >
bc) ? 1 : 0));
236 return ((
ac <
bc) ? -1 : ((
ac >
bc) ? 1 : 0));
303 nsln->nextindex =
m->nextindex;
305 m->nextindex->previndex =
nsln;
337 while (
found->down) {
421 return (*
iter) ? ((*iter)->data) :
NULL;
430 return (*
iter) ? ((*iter)->data) :
NULL;
498 if (top != sl->
top) {
548 m->up =
m->prev =
m->nextindex =
m->previndex =
NULL;
671 p->prev->next =
p->next;
673 p->next->prev =
p->prev;
711 while (
m->previndex) {
740 while (
m->previndex) {
static apr_status_t skiplist_qpush(apr_skiplist_q *q, apr_skiplistnode *m)
static apr_skiplistnode * insert_compare(apr_skiplist *sl, void *data, apr_skiplist_compare comp, int add, apr_skiplist_freefunc myfree)
static void * find_compare(apr_skiplist *sli, void *data, apr_skiplistnode **iter, apr_skiplist_compare comp, int last)
static int indexing_comp(void *a, void *b)
static apr_status_t skiplist_put_node(apr_skiplist *sl, apr_skiplistnode *m)
static apr_skiplistnode * skiplist_new_node(apr_skiplist *sl)
static void skiplisti_destroy(void *vsl)
static int skiplisti_find_compare(apr_skiplist *sl, void *data, apr_skiplistnode **ret, apr_skiplist_compare comp, int last)
static APR_INLINE void skiplist_qclear(apr_skiplist_q *q)
static int indexing_compk(void *ac, void *b)
static unsigned int get_b_rand(void)
static APR_INLINE int skiplist_height(const apr_skiplist *sl)
static APR_INLINE apr_skiplistnode * skiplist_qpop(apr_skiplist_q *q)
static apr_status_t skiplisti_init(apr_skiplist **s, apr_pool_t *p)
static int skiplisti_remove(apr_skiplist *sl, apr_skiplistnode *m, apr_skiplist_freefunc myfree)
APR skip list implementation.
apr_bucket apr_bucket_brigade * a
#define apr_pcalloc(p, size)
void apr_skiplistnode ** iter
void(* apr_skiplist_freefunc)(void *)
void apr_skiplistnode apr_skiplist_compare comp
int(* apr_skiplist_compare)(void *, void *)
void apr_skiplist_freefunc myfree
apr_array_header_t * memlist
apr_skiplist_compare comparek
apr_skiplistnode * bottom
apr_skiplistnode * topend
apr_skiplist_compare compare
apr_skiplistnode * bottomend
apr_skiplistnode * previndex
apr_skiplistnode * nextindex
apr_array_header_t * list