Lines Matching refs:sp

52 splay_tree_delete_helper (splay_tree sp, splay_tree_node node)  in splay_tree_delete_helper()  argument
60 #define KDEL(x) if (sp->delete_key) (*sp->delete_key)(x); in splay_tree_delete_helper()
61 #define VDEL(x) if (sp->delete_value) (*sp->delete_value)(x); in splay_tree_delete_helper()
102 (*sp->deallocate) ((char*) temp, sp->allocate_data); in splay_tree_delete_helper()
138 splay_tree_splay (splay_tree sp, splay_tree_key key) in splay_tree_splay() argument
140 if (sp->root == 0) in splay_tree_splay()
147 n = sp->root; in splay_tree_splay()
148 cmp1 = (*sp->comp) (key, n->key); in splay_tree_splay()
164 cmp2 = (*sp->comp) (key, c->key); in splay_tree_splay()
170 rotate_left (&sp->root, n, c); in splay_tree_splay()
172 rotate_right (&sp->root, n, c); in splay_tree_splay()
180 rotate_left (&sp->root, n, n->left); in splay_tree_splay()
185 rotate_right (&sp->root, n, n->right); in splay_tree_splay()
190 rotate_left (&sp->root, n, n->left); in splay_tree_splay()
195 rotate_right (&sp->root, n, n->right); in splay_tree_splay()
333 splay_tree sp = (splay_tree) (*tree_allocate_fn) in splay_tree_new_typed_alloc() local
336 sp->root = 0; in splay_tree_new_typed_alloc()
337 sp->comp = compare_fn; in splay_tree_new_typed_alloc()
338 sp->delete_key = delete_key_fn; in splay_tree_new_typed_alloc()
339 sp->delete_value = delete_value_fn; in splay_tree_new_typed_alloc()
340 sp->allocate = node_allocate_fn; in splay_tree_new_typed_alloc()
341 sp->deallocate = deallocate_fn; in splay_tree_new_typed_alloc()
342 sp->allocate_data = allocate_data; in splay_tree_new_typed_alloc()
344 return sp; in splay_tree_new_typed_alloc()
350 splay_tree_delete (splay_tree sp) in splay_tree_delete() argument
352 splay_tree_delete_helper (sp, sp->root); in splay_tree_delete()
353 (*sp->deallocate) ((char*) sp, sp->allocate_data); in splay_tree_delete()
361 splay_tree_insert (splay_tree sp, splay_tree_key key, splay_tree_value value) in splay_tree_insert() argument
365 splay_tree_splay (sp, key); in splay_tree_insert()
367 if (sp->root) in splay_tree_insert()
368 comparison = (*sp->comp)(sp->root->key, key); in splay_tree_insert()
370 if (sp->root && comparison == 0) in splay_tree_insert()
374 if (sp->delete_value) in splay_tree_insert()
375 (*sp->delete_value)(sp->root->value); in splay_tree_insert()
376 sp->root->value = value; in splay_tree_insert()
384 (*sp->allocate) (sizeof (struct splay_tree_node_s), in splay_tree_insert()
385 sp->allocate_data)); in splay_tree_insert()
389 if (!sp->root) in splay_tree_insert()
393 node->left = sp->root; in splay_tree_insert()
399 node->right = sp->root; in splay_tree_insert()
404 sp->root = node; in splay_tree_insert()
407 return sp->root; in splay_tree_insert()
413 splay_tree_remove (splay_tree sp, splay_tree_key key) in splay_tree_remove() argument
415 splay_tree_splay (sp, key); in splay_tree_remove()
417 if (sp->root && (*sp->comp) (sp->root->key, key) == 0) in splay_tree_remove()
421 left = sp->root->left; in splay_tree_remove()
422 right = sp->root->right; in splay_tree_remove()
425 if (sp->delete_value) in splay_tree_remove()
426 (*sp->delete_value) (sp->root->value); in splay_tree_remove()
427 (*sp->deallocate) (sp->root, sp->allocate_data); in splay_tree_remove()
433 sp->root = left; in splay_tree_remove()
445 sp->root = right; in splay_tree_remove()
453 splay_tree_lookup (splay_tree sp, splay_tree_key key) in splay_tree_lookup() argument
455 splay_tree_splay (sp, key); in splay_tree_lookup()
457 if (sp->root && (*sp->comp)(sp->root->key, key) == 0) in splay_tree_lookup()
458 return sp->root; in splay_tree_lookup()
466 splay_tree_max (splay_tree sp) in splay_tree_max() argument
468 splay_tree_node n = sp->root; in splay_tree_max()
482 splay_tree_min (splay_tree sp) in splay_tree_min() argument
484 splay_tree_node n = sp->root; in splay_tree_min()
499 splay_tree_predecessor (splay_tree sp, splay_tree_key key) in splay_tree_predecessor() argument
505 if (!sp->root) in splay_tree_predecessor()
510 splay_tree_splay (sp, key); in splay_tree_predecessor()
511 comparison = (*sp->comp)(sp->root->key, key); in splay_tree_predecessor()
515 return sp->root; in splay_tree_predecessor()
518 node = sp->root->left; in splay_tree_predecessor()
530 splay_tree_successor (splay_tree sp, splay_tree_key key) in splay_tree_successor() argument
536 if (!sp->root) in splay_tree_successor()
541 splay_tree_splay (sp, key); in splay_tree_successor()
542 comparison = (*sp->comp)(sp->root->key, key); in splay_tree_successor()
546 return sp->root; in splay_tree_successor()
549 node = sp->root->right; in splay_tree_successor()
563 splay_tree_foreach (splay_tree sp, splay_tree_foreach_fn fn, void *data) in splay_tree_foreach() argument
565 return splay_tree_foreach_helper (sp->root, fn, data); in splay_tree_foreach()