Lines Matching defs:node
68 static void strbuf_node_cleanup(struct strbuf_node *node) {
71 for (i = 0; i < node->children_count; i++)
72 strbuf_node_cleanup(node->children[i].child);
73 free(node->children);
74 free(node);
101 static void bubbleinsert(struct strbuf_node *node,
109 int left = 0, right = node->children_count;
113 if (strbuf_children_cmp(&node->children[middle], &new) <= 0)
119 memmove(node->children + left + 1, node->children + left,
120 sizeof(struct strbuf_child_entry) * (node->children_count - left));
121 node->children[left] = new;
123 node->children_count ++;
129 struct strbuf_node *node;
145 node = str->root;
150 /* match against current node */
151 off = node->value_off + node->value_len - len;
152 if (depth == len || (node->value_len >= len && memcmp(str->buf + off, s, len) == 0)) {
158 /* lookup child node */
161 child = bsearch(&search, node->children, node->children_count,
165 node = child->child;
178 /* new node */
186 child = realloc(node->children, (node->children_count + 1) * sizeof(struct strbuf_child_entry));
194 node->children = child;
195 bubbleinsert(node, c, node_child);