[dovecot-cvs] dovecot/src/lib-storage/index index-sync.c,1.30,1.31
cras at procontrol.fi
cras at procontrol.fi
Mon May 10 02:06:29 EEST 2004
- Previous message: [dovecot-cvs] dovecot/src/lib-index mail-index-private.h, 1.14,
1.15 mail-index-sync-private.h, 1.3, 1.4 mail-index-sync.c,
1.11, 1.12 mail-index-view-sync.c, 1.5, 1.6 mail-index.c,
1.119, 1.120
- Next message: [dovecot-cvs] dovecot/src/lib-storage/index/maildir maildir-sync.c,
1.12, 1.13 maildir-uidlist.c, 1.13, 1.14 maildir-uidlist.h, 1.4, 1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/dovecot/src/lib-storage/index
In directory talvi:/tmp/cvs-serv29121/lib-storage/index
Modified Files:
index-sync.c
Log Message:
syncing fixes
Index: index-sync.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/index-sync.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- index-sync.c 1 May 2004 18:30:52 -0000 1.30
+++ index-sync.c 9 May 2004 23:06:27 -0000 1.31
@@ -15,7 +15,7 @@
size_t i, expunges_count;
void *sc_context;
enum mail_index_sync_type sync_mask;
- uint32_t seq, new_count, recent_count;
+ uint32_t seq, messages_count, recent_count;
int ret, appends;
sync_mask = MAIL_INDEX_SYNC_MASK_ALL;
@@ -39,6 +39,8 @@
sc_context = ibox->storage->callback_context;
appends = FALSE;
+ messages_count = mail_index_view_get_message_count(ibox->view);
+
memset(&full_flags, 0, sizeof(full_flags));
while ((ret = mail_index_view_sync_next(ctx, &sync)) > 0) {
switch (sync.type) {
@@ -52,6 +54,9 @@
if (sc->update_flags == NULL)
break;
+ if (sync.seq2 > messages_count)
+ sync.seq2 = messages_count;
+
/* FIXME: hide the flag updates for expunged messages */
for (seq = sync.seq1; seq <= sync.seq2; seq++) {
if (mail_index_lookup(ibox->view,
@@ -72,7 +77,10 @@
if (sc->expunge != NULL) {
for (i = expunges_count*2; i > 0; i -= 2) {
- for (seq = expunges[i-1]; seq >= expunges[i-2]; seq--)
+ seq = expunges[i-1];
+ if (seq > messages_count)
+ seq = messages_count;
+ for (; seq >= expunges[i-2]; seq--)
sc->expunge(&ibox->box, seq, sc_context);
}
}
@@ -80,9 +88,9 @@
mail_index_view_sync_end(ctx);
if (appends) {
- new_count = mail_index_view_get_message_count(ibox->view);
+ messages_count = mail_index_view_get_message_count(ibox->view);
recent_count = ibox->get_recent_count(ibox);
- sc->new_messages(&ibox->box, new_count, recent_count,
+ sc->new_messages(&ibox->box, messages_count, recent_count,
sc_context);
}
- Previous message: [dovecot-cvs] dovecot/src/lib-index mail-index-private.h, 1.14,
1.15 mail-index-sync-private.h, 1.3, 1.4 mail-index-sync.c,
1.11, 1.12 mail-index-view-sync.c, 1.5, 1.6 mail-index.c,
1.119, 1.120
- Next message: [dovecot-cvs] dovecot/src/lib-storage/index/maildir maildir-sync.c,
1.12, 1.13 maildir-uidlist.c, 1.13, 1.14 maildir-uidlist.h, 1.4, 1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list