Lines Matching refs:array
40 radnode_del_postorder(region, n->array[i].node); in radnode_del_postorder()
41 region_recycle(region, n->array[i].str, n->array[i].len); in radnode_del_postorder()
43 region_recycle(region, n->array, n->capacity*sizeof(struct radsel)); in radnode_del_postorder()
68 if(n->array[idx].node) { in radnode_last_in_subtree()
70 if(n->array[idx].node->len > 0) { in radnode_last_in_subtree()
72 n->array[idx].node); in radnode_last_in_subtree()
76 if(n->array[idx].node->elem) in radnode_last_in_subtree()
77 return n->array[idx].node; in radnode_last_in_subtree()
101 if(n->array[idx].node) { in radnode_first_in_subtree()
103 if(n->array[idx].node->elem) in radnode_first_in_subtree()
104 return n->array[idx].node; in radnode_first_in_subtree()
106 if((s=radnode_first_in_subtree(n->array[idx].node))!=0) in radnode_first_in_subtree()
120 if(n->array[idx].node) { in radnode_find_prev_from_idx()
122 n->array[idx].node); in radnode_find_prev_from_idx()
161 if(n->array[byte].len != 0) { in radix_find_prefix_node()
163 if(pos+n->array[byte].len > len) { in radix_find_prefix_node()
166 if(memcmp(&k[pos], n->array[byte].str, in radix_find_prefix_node()
167 n->array[byte].len) != 0) { in radix_find_prefix_node()
170 pos += n->array[byte].len; in radix_find_prefix_node()
172 n = n->array[byte].node; in radix_find_prefix_node()
198 memcpy(&a[0], &n->array[0], n->len*sizeof(struct radsel)); in radnode_array_grow()
199 region_recycle(region, n->array, n->capacity*sizeof(struct radsel)); in radnode_array_grow()
200 n->array = a; in radnode_array_grow()
210 if(!n->array || n->capacity == 0) { in radnode_array_space()
211 n->array = (struct radsel*)region_alloc(region, in radnode_array_space()
213 if(!n->array) return 0; in radnode_array_space()
214 memset(&n->array[0], 0, sizeof(struct radsel)); in radnode_array_space()
222 memset(&n->array[0], 0, sizeof(struct radsel)); in radnode_array_space()
234 memmove(&n->array[need], &n->array[0], in radnode_array_space()
238 if(n->array[idx+need].node) in radnode_array_space()
239 n->array[idx+need].node->pidx = idx+need; in radnode_array_space()
242 memset(&n->array[0], 0, need*sizeof(struct radsel)); in radnode_array_space()
255 memset(&n->array[n->len], 0, need*sizeof(struct radsel)); in radnode_array_space()
380 add->array[0].node = r->node; in radsel_split()
381 add->array[0].str = split_str; in radsel_split()
382 add->array[0].len = split_len; in radsel_split()
412 r->node->array[add->pidx].node = add; in radsel_split()
413 r->node->array[add->pidx].str = split_str; in radsel_split()
414 r->node->array[add->pidx].len = split_len; in radsel_split()
465 region_recycle(region, com->array, com->capacity*sizeof(struct radsel)); in radsel_split()
480 com->array[r->node->pidx].node = r->node; in radsel_split()
481 com->array[r->node->pidx].str = s1_str; in radsel_split()
482 com->array[r->node->pidx].len = s1_len; in radsel_split()
483 com->array[add->pidx].node = add; in radsel_split()
484 com->array[add->pidx].str = s2_str; in radsel_split()
485 com->array[add->pidx].len = s2_len; in radsel_split()
520 region_recycle(rt->region, n->array, in radix_insert()
528 n->array[0].node = add; in radix_insert()
531 &n->array[0].str, &n->array[0].len)) { in radix_insert()
532 region_recycle(rt->region, n->array, in radix_insert()
568 if(!radsel_str_create(rt->region, &n->array[byte], in radix_insert()
577 n->array[byte].node = add; in radix_insert()
579 } else if(n->array[byte-n->offset].node == NULL) { in radix_insert()
584 if(!radsel_str_create(rt->region, &n->array[byte], in radix_insert()
593 n->array[byte].node = add; in radix_insert()
600 if(!radsel_split(rt->region, &n->array[byte-n->offset], in radix_insert()
619 region_recycle(region, n->array[i].str, n->array[i].len); in radnode_delete()
621 region_recycle(region, n->array, n->capacity*sizeof(struct radsel)); in radnode_delete()
633 struct radnode* child = n->array[0].node; in radnode_cleanup_onechild()
639 joinlen = par->array[pidx].len + n->array[0].len + 1; in radnode_cleanup_onechild()
647 if(par->array[pidx].str) in radnode_cleanup_onechild()
648 memcpy(join, par->array[pidx].str, par->array[pidx].len); in radnode_cleanup_onechild()
650 join[par->array[pidx].len] = child->pidx + n->offset; in radnode_cleanup_onechild()
652 if(n->array[0].str) in radnode_cleanup_onechild()
653 memmove(join+par->array[pidx].len+1, n->array[0].str, n->array[0].len); in radnode_cleanup_onechild()
654 region_recycle(region, par->array[pidx].str, par->array[pidx].len); in radnode_cleanup_onechild()
655 par->array[pidx].str = join; in radnode_cleanup_onechild()
656 par->array[pidx].len = joinlen; in radnode_cleanup_onechild()
658 par->array[pidx].node = child; in radnode_cleanup_onechild()
673 region_recycle(region, n->array, n->capacity*sizeof(struct radsel)); in radnode_array_clean_all()
674 n->array = NULL; in radnode_array_clean_all()
686 memcpy(a, n->array, sizeof(*a)*n->len); in radnode_array_reduce_if_needed()
687 region_recycle(region, n->array, n->capacity*sizeof(*a)); in radnode_array_reduce_if_needed()
688 n->array = a; in radnode_array_reduce_if_needed()
700 while(shuf < n->len && n->array[shuf].node == NULL) in radnode_array_clean_front()
711 memmove(&n->array[0], &n->array[shuf], in radnode_array_clean_front()
716 if(n->array[idx].node) in radnode_array_clean_front()
717 n->array[idx].node->pidx = idx; in radnode_array_clean_front()
729 while(shuf < n->len && n->array[n->len-1-shuf].node == NULL) in radnode_array_clean_end()
758 region_recycle(region, par->array[pidx].str, par->array[pidx].len); in radnode_cleanup_leaf()
759 par->array[pidx].str = NULL; in radnode_cleanup_leaf()
760 par->array[pidx].len = 0; in radnode_cleanup_leaf()
761 par->array[pidx].node = NULL; in radnode_cleanup_leaf()
840 if(n->array[byte].len != 0) { in radix_search()
842 if(pos+n->array[byte].len > len) in radix_search()
844 if(memcmp(&k[pos], n->array[byte].str, in radix_search()
845 n->array[byte].len) != 0) in radix_search()
847 pos += n->array[byte].len; in radix_search()
849 n = n->array[byte].node; in radix_search()
891 if(!n->array[byte].node) { in radix_find_less_equal()
900 if(n->array[byte].len != 0) { in radix_find_less_equal()
902 if(pos+n->array[byte].len > len) { in radix_find_less_equal()
904 if( (memcmp(&k[pos], n->array[byte].str, in radix_find_less_equal()
907 *result = radix_prev(n->array[byte].node); in radix_find_less_equal()
912 *result=radnode_last_in_subtree_incl_self(n->array[byte].node); in radix_find_less_equal()
918 *result = radix_prev(n->array[byte].node); in radix_find_less_equal()
922 if( (r=memcmp(&k[pos], n->array[byte].str, in radix_find_less_equal()
923 n->array[byte].len)) < 0) { in radix_find_less_equal()
924 *result = radix_prev(n->array[byte].node); in radix_find_less_equal()
930 *result=radnode_last_in_subtree_incl_self(n->array[byte].node); in radix_find_less_equal()
932 if(!*result) *result = radix_prev(n->array[byte].node); in radix_find_less_equal()
935 pos += n->array[byte].len; in radix_find_less_equal()
937 n = n->array[byte].node; in radix_find_less_equal()
980 if(n->array[idx].node) { in radix_next()
983 if(n->array[idx].node->elem) in radix_next()
984 return n->array[idx].node; in radix_next()
987 n->array[idx].node); in radix_next()
1251 if(n->array[byte].len != 0) { in radname_search()
1254 for(i=0; i<n->array[byte].len; i++) { in radname_search()
1268 if(n->array[byte].str[i] != b) in radname_search()
1272 n = n->array[byte].node; in radname_search()
1371 if(!n->array[byte].node) { in radname_find_less_equal()
1380 if(n->array[byte].len != 0) { in radname_find_less_equal()
1383 for(i=0; i<n->array[byte].len; i++) { in radname_find_less_equal()
1394 n->array[byte].node); in radname_find_less_equal()
1402 if(b < n->array[byte].str[i]) { in radname_find_less_equal()
1404 n->array[byte].node); in radname_find_less_equal()
1406 } else if(b > n->array[byte].str[i]) { in radname_find_less_equal()
1410 *result = radnode_last_in_subtree_incl_self(n->array[byte].node); in radname_find_less_equal()
1414 *result = radix_prev(n->array[byte].node); in radname_find_less_equal()
1419 n = n->array[byte].node; in radname_find_less_equal()