Lines Matching refs:node

101 static void free_node(struct hash_table *table, struct hash_node *node)
104 p_free(table->node_pool, node);
106 node->next = table->free_nodes;
107 table->free_nodes = node;
111 static void destroy_node_list(struct hash_table *table, struct hash_node *node)
115 while (node != NULL) {
116 next = node->next;
117 p_free(table->node_pool, node);
118 node = next;
173 struct hash_node *node;
175 node = &table->nodes[hash % table->size];
178 if (node->key != NULL) {
179 if (table->key_compare_cb(node->key, key) == 0)
180 return node;
182 node = node->next;
183 } while (node != NULL);
190 struct hash_node *node;
192 node = hash_table_lookup_node(table, key, table->hash_cb(key));
193 return node != NULL ? node->value : NULL;
200 struct hash_node *node;
202 node = hash_table_lookup_node(table, lookup_key,
204 if (node == NULL)
207 *orig_key = node->key;
208 *value = node->value;
216 struct hash_node *node, *prev;
228 node = hash_table_lookup_node(table, key, hash);
229 if (node != NULL) {
231 node->value = value;
238 /* a) primary node */
239 node = &table->nodes[hash % table->size];
240 if (node->key == NULL) {
243 node->key = key;
244 node->value = value;
248 if (table->key_compare_cb(node->key, key) == 0) {
250 node->value = value;
256 prev = node; node = node->next;
257 while (node != NULL) {
258 if (node->key == NULL)
262 if (table->key_compare_cb(node->key, key) == 0) {
264 node->value = value;
268 prev = node;
269 node = node->next;
272 if (node == NULL) {
280 node = p_new(table->node_pool, struct hash_node, 1);
282 node = table->free_nodes;
283 table->free_nodes = node->next;
284 node->next = NULL;
286 prev->next = node;
289 node->key = key;
290 node->value = value;
308 struct hash_node *node, *next;
313 for (node = root; node->next != NULL; ) {
314 next = node->next;
317 node->next = next->next;
320 node = next;
344 struct hash_node *node;
349 node = hash_table_lookup_node(table, key, hash);
350 if (unlikely(node == NULL))
353 node->key = NULL;
382 struct hash_node *node)
385 node = node->next;
386 if (node == NULL) {
391 node = &ctx->table->nodes[ctx->pos];
393 } while (node->key == NULL);
395 return node;
401 struct hash_node *node;
403 node = ctx->next;
404 if (node != NULL && node->key == NULL)
405 node = hash_table_iterate_next(ctx, node);
406 if (node == NULL) {
410 *key_r = node->key;
411 *value_r = node->value;
413 ctx->next = hash_table_iterate_next(ctx, node);
446 struct hash_node *old_nodes, *node, *next;
478 node = &old_nodes[i];
479 if (node->key != NULL) {
480 hash_table_insert_node(table, node->key,
481 node->value, HASH_TABLE_OP_RESIZE);
484 for (node = node->next; node != NULL; node = next) {
485 next = node->next;
487 if (node->key != NULL) {
488 hash_table_insert_node(table, node->key,
489 node->value, HASH_TABLE_OP_RESIZE);
491 free_node(table, node);