projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Sprinkling the source with static and attributes.
[tinc]
/
lib
/
avl_tree.c
diff --git
a/lib/avl_tree.c
b/lib/avl_tree.c
index
575b2f1
..
53d82eb
100644
(file)
--- a/
lib/avl_tree.c
+++ b/
lib/avl_tree.c
@@
-29,7
+29,7
@@
library for inclusion into tinc (http://tinc.nl.linux.org/) by
Guus Sliepen <guus@sliepen.eu.org>.
library for inclusion into tinc (http://tinc.nl.linux.org/) by
Guus Sliepen <guus@sliepen.eu.org>.
- $Id: avl_tree.c,v 1.1.2.1
1 2002/09/09 22:32:24
guus Exp $
+ $Id: avl_tree.c,v 1.1.2.1
4 2003/07/06 23:16:27
guus Exp $
*/
#include <stdio.h>
*/
#include <stdio.h>
@@
-53,7
+53,9
@@
#endif
#ifndef AVL_DEPTH
#endif
#ifndef AVL_DEPTH
-int lg(unsigned int u)
+static int lg(unsigned int u) __attribute__ ((const));
+
+static int lg(unsigned int u)
{
int r = 1;
{
int r = 1;
@@
-89,7
+91,7
@@
int lg(unsigned int u)
/* Internal helper functions */
/* Internal helper functions */
-int avl_check_balance(avl_node_t *node)
+
static
int avl_check_balance(avl_node_t *node)
{
#ifdef AVL_DEPTH
int d;
{
#ifdef AVL_DEPTH
int d;
@@
-117,7
+119,7
@@
int avl_check_balance(avl_node_t *node)
#endif
}
#endif
}
-void avl_rebalance(avl_tree_t *tree, avl_node_t *node)
+
static
void avl_rebalance(avl_tree_t *tree, avl_node_t *node)
{
avl_node_t *child;
avl_node_t *gchild;
{
avl_node_t *child;
avl_node_t *gchild;
@@
-494,15
+496,22
@@
void avl_insert_top(avl_tree_t *tree, avl_node_t *node)
void avl_insert_before(avl_tree_t *tree, avl_node_t *before,
avl_node_t *node)
{
void avl_insert_before(avl_tree_t *tree, avl_node_t *before,
avl_node_t *node)
{
- if(!before)
- return tree->tail ? avl_insert_after(tree, tree->tail, node) : avl_insert_top(tree, node);
+ if(!before) {
+ if(tree->tail)
+ avl_insert_after(tree, tree->tail, node);
+ else
+ avl_insert_top(tree, node);
+ return;
+ }
node->next = before;
node->parent = before;
node->prev = before->prev;
node->next = before;
node->parent = before;
node->prev = before->prev;
- if(before->left)
- return avl_insert_after(tree, before->prev, node);
+ if(before->left) {
+ avl_insert_after(tree, before->prev, node);
+ return;
+ }
if(before->prev)
before->prev->next = node;
if(before->prev)
before->prev->next = node;
@@
-512,18
+521,23
@@
void avl_insert_before(avl_tree_t *tree, avl_node_t *before,
before->prev = node;
before->left = node;
before->prev = node;
before->left = node;
- avl_rebalance(tree, before
->parent
);
+ avl_rebalance(tree, before);
}
void avl_insert_after(avl_tree_t *tree, avl_node_t *after, avl_node_t *node)
{
}
void avl_insert_after(avl_tree_t *tree, avl_node_t *after, avl_node_t *node)
{
- if(!after)
- return tree->head ? avl_insert_before(tree, tree->head,
- node) : avl_insert_top(tree,
- node);
+ if(!after) {
+ if(tree->head)
+ avl_insert_before(tree, tree->head, node);
+ else
+ avl_insert_top(tree, node);
+ return;
+ }
- if(after->right)
- return avl_insert_before(tree, after->next, node);
+ if(after->right) {
+ avl_insert_before(tree, after->next, node);
+ return;
+ }
node->prev = after;
node->parent = after;
node->prev = after;
node->parent = after;
@@
-537,7
+551,7
@@
void avl_insert_after(avl_tree_t *tree, avl_node_t *after, avl_node_t *node)
after->next = node;
after->right = node;
after->next = node;
after->right = node;
- avl_rebalance(tree, after
->parent
);
+ avl_rebalance(tree, after);
}
avl_node_t *avl_unlink(avl_tree_t *tree, void *data)
}
avl_node_t *avl_unlink(avl_tree_t *tree, void *data)