Mercurial > dovecot > original-hg > dovecot-1.2
diff src/lib-index/mail-tree-redblack.c @ 903:fd8888f6f037 HEAD
Naming style changes, finally got tired of most of the typedefs. Also the
previous enum -> macro change reverted so that we don't use the highest bit
anymore, that's incompatible with old indexes so they will be rebuilt.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 05 Jan 2003 15:09:51 +0200 |
parents | 41dde6822eea |
children | e291bf36d57f |
line wrap: on
line diff
--- a/src/lib-index/mail-tree-redblack.c Sun Jan 05 11:23:13 2003 +0200 +++ b/src/lib-index/mail-tree-redblack.c Sun Jan 05 15:09:51 2003 +0200 @@ -84,7 +84,7 @@ */ static unsigned int -rb_alloc(MailTree *tree) +rb_alloc(struct mail_tree *tree) { unsigned int x; @@ -94,23 +94,23 @@ } i_assert(tree->header->used_file_size == tree->mmap_used_length); - i_assert(tree->mmap_used_length + sizeof(MailTreeNode) <= + i_assert(tree->mmap_used_length + sizeof(struct mail_tree_node) <= tree->mmap_full_length); - x = (tree->mmap_used_length - sizeof(MailTreeHeader)) / - sizeof(MailTreeNode); + x = (tree->mmap_used_length - sizeof(struct mail_tree_header)) / + sizeof(struct mail_tree_node); - tree->header->used_file_size += sizeof(MailTreeNode); - tree->mmap_used_length += sizeof(MailTreeNode); + tree->header->used_file_size += sizeof(struct mail_tree_node); + tree->mmap_used_length += sizeof(struct mail_tree_node); - memset(&tree->node_base[x], 0, sizeof(MailTreeNode)); + memset(&tree->node_base[x], 0, sizeof(struct mail_tree_node)); return x; } static void -rb_move(MailTree *tree, unsigned int src, unsigned int dest) +rb_move(struct mail_tree *tree, unsigned int src, unsigned int dest) { - MailTreeNode *node = tree->node_base; + struct mail_tree_node *node = tree->node_base; /* update parent */ if (node[src].up != RBNULL) { @@ -130,21 +130,22 @@ if (tree->header->root == src) tree->header->root = dest; - memcpy(&node[dest], &node[src], sizeof(MailTreeNode)); - memset(&node[src], 0, sizeof(MailTreeNode)); + memcpy(&node[dest], &node[src], sizeof(struct mail_tree_node)); + memset(&node[src], 0, sizeof(struct mail_tree_node)); } static void -rb_free(MailTree *tree, unsigned int x) +rb_free(struct mail_tree *tree, unsigned int x) { unsigned int last; i_assert(tree->mmap_used_length >= - sizeof(MailTreeHeader) + sizeof(MailTreeNode)); + sizeof(struct mail_tree_header) + + sizeof(struct mail_tree_node)); /* get index to last used record */ - last = (tree->mmap_used_length - sizeof(MailTreeHeader)) / - sizeof(MailTreeNode) - 1; + last = (tree->mmap_used_length - sizeof(struct mail_tree_header)) / + sizeof(struct mail_tree_node) - 1; if (last != x) { /* move it over the one we want free'd */ @@ -152,8 +153,8 @@ } /* mark the moved node unused */ - tree->mmap_used_length -= sizeof(MailTreeNode); - tree->header->used_file_size -= sizeof(MailTreeNode); + tree->mmap_used_length -= sizeof(struct mail_tree_node); + tree->header->used_file_size -= sizeof(struct mail_tree_node); _mail_tree_truncate(tree); } @@ -177,9 +178,9 @@ */ static void -rb_left_rotate(MailTree *tree, unsigned int x) +rb_left_rotate(struct mail_tree *tree, unsigned int x) { - MailTreeNode *node = tree->node_base; + struct mail_tree_node *node = tree->node_base; unsigned int y, a_nodes, c_nodes; i_assert(x != RBNULL); @@ -222,9 +223,9 @@ } static void -rb_right_rotate(MailTree *tree, unsigned int y) +rb_right_rotate(struct mail_tree *tree, unsigned int y) { - MailTreeNode *node = tree->node_base; + struct mail_tree_node *node = tree->node_base; unsigned int x, a_nodes, c_nodes; i_assert(y != RBNULL); @@ -269,9 +270,9 @@ /* Return index to the smallest key greater than x */ static unsigned int -rb_successor(MailTree *tree, unsigned int x) +rb_successor(struct mail_tree *tree, unsigned int x) { - MailTreeNode *node = tree->node_base; + struct mail_tree_node *node = tree->node_base; unsigned int y; if (node[x].right != RBNULL) { @@ -299,9 +300,9 @@ /* Restore the reb-black properties after insert */ static int -rb_insert_fix(MailTree *tree, unsigned int z) +rb_insert_fix(struct mail_tree *tree, unsigned int z) { - MailTreeNode *node = tree->node_base; + struct mail_tree_node *node = tree->node_base; unsigned int x, y, x_up_up; /* color this new node red */ @@ -380,9 +381,9 @@ /* Restore the reb-black properties after a delete */ static void -rb_delete_fix(MailTree *tree, unsigned int x) +rb_delete_fix(struct mail_tree *tree, unsigned int x) { - MailTreeNode *node = tree->node_base; + struct mail_tree_node *node = tree->node_base; unsigned int w; while (x != tree->header->root && IS_NODE_BLACK(node[x])) { @@ -490,9 +491,9 @@ /* Delete the node z, and free up the space */ static void -rb_delete(MailTree *tree, unsigned int z) +rb_delete(struct mail_tree *tree, unsigned int z) { - MailTreeNode *node = tree->node_base; + struct mail_tree_node *node = tree->node_base; unsigned int x, y, b; if (node[z].left == RBNULL || node[z].right == RBNULL) { @@ -550,9 +551,9 @@ #ifdef DEBUG_TREE int -rb_check1(MailTree *tree, unsigned int x) +rb_check1(struct mail_tree *tree, unsigned int x) { - MailTreeNode *node = tree->node_base; + struct mail_tree_node *node = tree->node_base; if (IS_NODE_RED(node[x])) { if (!IS_NODE_BLACK(node[node[x].left]) || @@ -585,9 +586,9 @@ return 0; } -int count_black(MailTree *tree, unsigned int x) +int count_black(struct mail_tree *tree, unsigned int x) { - MailTreeNode *node = tree->node_base; + struct mail_tree_node *node = tree->node_base; int nleft, nright; if (x == RBNULL) @@ -610,9 +611,9 @@ return nleft; } -int count_nodes(MailTree *tree, unsigned int x) +int count_nodes(struct mail_tree *tree, unsigned int x) { - MailTreeNode *node = tree->node_base; + struct mail_tree_node *node = tree->node_base; int nleft, nright; if (x == RBNULL) @@ -633,9 +634,9 @@ return nleft+nright+1; } -void dumptree(MailTree *tree, unsigned int x, int n) +void dumptree(struct mail_tree *tree, unsigned int x, int n) { - MailTreeNode *node = tree->node_base; + struct mail_tree_node *node = tree->node_base; if (x != RBNULL) { n++; @@ -651,9 +652,9 @@ } int -rb_check(MailTree *tree) +rb_check(struct mail_tree *tree) { - MailTreeNode *node = tree->node_base; + struct mail_tree_node *node = tree->node_base; unsigned int root; root = tree->header->root; @@ -685,11 +686,12 @@ } #endif -unsigned int mail_tree_lookup_uid_range(MailTree *tree, unsigned int *seq_r, +unsigned int mail_tree_lookup_uid_range(struct mail_tree *tree, + unsigned int *seq_r, unsigned int first_uid, unsigned int last_uid) { - MailTreeNode *node; + struct mail_tree_node *node; unsigned int x, y, seq; i_assert(first_uid > 0 && last_uid > 0); @@ -746,9 +748,9 @@ return x == RBNULL ? (unsigned int)-1 : node[x].value; } -unsigned int mail_tree_lookup_sequence(MailTree *tree, unsigned int seq) +unsigned int mail_tree_lookup_sequence(struct mail_tree *tree, unsigned int seq) { - MailTreeNode *node; + struct mail_tree_node *node; unsigned int x, upleft_nodes, left_nodes; i_assert(seq != 0); @@ -782,9 +784,10 @@ return (unsigned int)-1; } -int mail_tree_insert(MailTree *tree, unsigned int uid, unsigned int index) +int mail_tree_insert(struct mail_tree *tree, + unsigned int uid, unsigned int index) { - MailTreeNode *node; + struct mail_tree_node *node; unsigned int x, z; i_assert(uid != 0); @@ -841,9 +844,10 @@ return TRUE; } -int mail_tree_update(MailTree *tree, unsigned int uid, unsigned int index) +int mail_tree_update(struct mail_tree *tree, + unsigned int uid, unsigned int index) { - MailTreeNode *node; + struct mail_tree_node *node; unsigned int x; i_assert(uid != 0); @@ -875,9 +879,9 @@ return FALSE; } -void mail_tree_delete(MailTree *tree, unsigned int uid) +void mail_tree_delete(struct mail_tree *tree, unsigned int uid) { - MailTreeNode *node; + struct mail_tree_node *node; unsigned int x; i_assert(uid != 0);