Mercurial > dovecot > original-hg > dovecot-1.2
changeset 511:10d6c1cb6511 HEAD
Set node variable after mmap updating which may change it..
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 25 Oct 2002 06:23:36 +0300 |
parents | 9d4c71bfaed9 |
children | 41133ae3feb6 |
files | src/lib-index/mail-tree-redblack.c |
diffstat | 1 files changed, 14 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-tree-redblack.c Fri Oct 25 05:52:02 2002 +0300 +++ b/src/lib-index/mail-tree-redblack.c Fri Oct 25 06:23:36 2002 +0300 @@ -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; }