changeset 2932:461bd8486083 HEAD

Expunge sync handlers were using wrong extension contexts. This may have caused cache->locked asserts.
author Timo Sirainen <tss@iki.fi>
date Sun, 05 Dec 2004 00:04:45 +0200
parents 3fc80d3ae8de
children 6ec86fd705a6
files src/lib-index/mail-index-sync-update.c
diffstat 1 files changed, 7 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-index-sync-update.c	Sat Dec 04 23:57:36 2004 +0200
+++ b/src/lib-index/mail-index-sync-update.c	Sun Dec 05 00:04:45 2004 +0200
@@ -39,7 +39,7 @@
 	const uint32_t *id_map;
 	struct mail_index_expunge_handler eh;
 	size_t handlers_count, id_map_size, size;
-	uint32_t ext_id;
+	uint32_t idx_ext_id, map_ext_id;
 
 	handlers = buffer_get_data(ctx->view->index->expunge_handlers,
 				   &handlers_count);
@@ -62,13 +62,14 @@
 	id_map_size /= sizeof(*id_map);
 
 	size = I_MIN(handlers_count, id_map_size);
-	for (ext_id = 0; ext_id < size; ext_id++) {
-		if (handlers[ext_id] == NULL || id_map[ext_id] == (uint32_t)-1)
+	for (idx_ext_id = 0; idx_ext_id < size; idx_ext_id++) {
+		map_ext_id = id_map[idx_ext_id];
+		if (handlers[idx_ext_id] == NULL || map_ext_id == (uint32_t)-1)
 			continue;
 
-		eh.handler = handlers[ext_id];
-		eh.context = &ctx->extra_context[ext_id];
-		eh.record_offset = extensions[id_map[ext_id]].record_offset;
+		eh.handler = handlers[idx_ext_id];
+		eh.context = &ctx->extra_context[map_ext_id];
+		eh.record_offset = extensions[map_ext_id].record_offset;
 		buffer_append(ctx->expunge_handlers, &eh, sizeof(eh));
 	}
 	ctx->expunge_handlers_set = TRUE;