[dovecot-cvs] dovecot/src/lib-index mail-tree-redblack.c,1.16,1.17
cras at procontrol.fi
cras at procontrol.fi
Fri Oct 25 07:23:38 EEST 2002
Update of /home/cvs/dovecot/src/lib-index
In directory danu:/tmp/cvs-serv32462
Modified Files:
mail-tree-redblack.c
Log Message:
Set node variable after mmap updating which may change it..
Index: mail-tree-redblack.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-tree-redblack.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- mail-tree-redblack.c 24 Oct 2002 02:15:11 -0000 1.16
+++ mail-tree-redblack.c 25 Oct 2002 03:23:36 -0000 1.17
@@ -662,7 +662,7 @@
unsigned int first_uid,
unsigned int last_uid)
{
- MailTreeNode *node = tree->node_base;
+ MailTreeNode *node;
unsigned int x, y, seq;
i_assert(first_uid > 0 && last_uid > 0);
@@ -673,6 +673,7 @@
return (unsigned int)-1;
rb_check(tree);
+ tree->modified = TRUE;
if (seq_r != NULL)
*seq_r = 0;
@@ -720,7 +721,7 @@
unsigned int mail_tree_lookup_sequence(MailTree *tree, unsigned int seq)
{
- MailTreeNode *node = tree->node_base;
+ MailTreeNode *node;
unsigned int x, upleft_nodes, left_nodes;
i_assert(seq != 0);
@@ -730,6 +731,7 @@
return (unsigned int)-1;
rb_check(tree);
+ node = tree->node_base;
x = tree->header->root;
@@ -755,7 +757,7 @@
int mail_tree_insert(MailTree *tree, unsigned int uid, unsigned int index)
{
- MailTreeNode *node = tree->node_base;
+ MailTreeNode *node;
unsigned int x, z;
i_assert(uid != 0);
@@ -764,7 +766,7 @@
if (!_mail_tree_mmap_update(tree, FALSE))
return FALSE;
- tree->modified = TRUE;
+ node = tree->node_base;
/* we'll always insert to right side of the tree */
x = tree->header->root;
@@ -807,12 +809,14 @@
rb_insert_fix(tree, z);
rb_check(tree);
+
+ tree->modified = TRUE;
return TRUE;
}
int mail_tree_update(MailTree *tree, unsigned int uid, unsigned int index)
{
- MailTreeNode *node = tree->node_base;
+ MailTreeNode *node;
unsigned int x;
i_assert(uid != 0);
@@ -822,6 +826,7 @@
return FALSE;
rb_check(tree);
+ node = tree->node_base;
tree->modified = TRUE;
@@ -845,7 +850,7 @@
void mail_tree_delete(MailTree *tree, unsigned int uid)
{
- MailTreeNode *node = tree->node_base;
+ MailTreeNode *node;
unsigned int x;
i_assert(uid != 0);
@@ -854,7 +859,7 @@
if (!_mail_tree_mmap_update(tree, FALSE))
return;
- tree->modified = TRUE;
+ node = tree->node_base;
x = tree->header->root;
while (x != RBNULL) {
@@ -869,4 +874,6 @@
break;
}
}
+
+ tree->modified = TRUE;
}
More information about the dovecot-cvs
mailing list