[dovecot-cvs] dovecot/src/lib-index mail-index-private.h, 1.59,
1.60 mail-index-sync-ext.c, 1.14, 1.15 mail-index.c, 1.210, 1.211
cras at dovecot.org
cras at dovecot.org
Fri Jan 6 14:57:08 EET 2006
- Previous message: [dovecot-cvs] dovecot/src/lib-index mail-index-private.h, 1.58,
1.59 mail-index-sync-ext.c, 1.13,
1.14 mail-index-transaction-view.c, 1.14,
1.15 mail-index-transaction.c, 1.69, 1.70 mail-index.c, 1.209,
1.210 mail-transaction-log-append.c, 1.12, 1.13
- Next message: [dovecot-cvs] dovecot/src/lib-index mail-index.c,1.211,1.212
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /var/lib/cvs/dovecot/src/lib-index
In directory talvi:/tmp/cvs-serv8740
Modified Files:
mail-index-private.h mail-index-sync-ext.c mail-index.c
Log Message:
Moved expunge handlers to mail_index_registered_ext.
Index: mail-index-private.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-index/mail-index-private.h,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -d -r1.59 -r1.60
--- mail-index-private.h 6 Jan 2006 12:48:55 -0000 1.59
+++ mail-index-private.h 6 Jan 2006 12:57:06 -0000 1.60
@@ -91,7 +91,8 @@
uint16_t record_size;
uint16_t record_align;
- struct mail_index_sync_handler sync_handler;
+ struct mail_index_sync_handler sync_handler;
+ mail_index_expunge_handler_t *expunge_handler;
};
struct mail_index_map {
@@ -135,7 +136,6 @@
pool_t extension_pool;
array_t ARRAY_DEFINE(extensions, struct mail_index_registered_ext);
- array_t ARRAY_DEFINE(expunge_handlers, mail_index_expunge_handler_t *);
array_t ARRAY_DEFINE(sync_lost_handlers,
mail_index_sync_lost_handler_t *);
Index: mail-index-sync-ext.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-index/mail-index-sync-ext.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- mail-index-sync-ext.c 6 Jan 2006 12:48:55 -0000 1.14
+++ mail-index-sync-ext.c 6 Jan 2006 12:57:06 -0000 1.15
@@ -11,25 +11,18 @@
void mail_index_sync_init_expunge_handlers(struct mail_index_sync_map_ctx *ctx)
{
- mail_index_expunge_handler_t *const *handlers;
- const struct mail_index_ext *extensions;
+ const struct mail_index_ext *ext;
+ const struct mail_index_registered_ext *rext;
const uint32_t *id_map;
void **contexts;
struct mail_index_expunge_handler eh;
- unsigned int count, ext_count, id_map_count;
- unsigned int handlers_count, context_count;
+ unsigned int ext_count, id_map_count;
+ unsigned int rext_count, context_count;
uint32_t idx_ext_id, map_ext_id;
if (!array_is_created(&ctx->view->map->extensions))
return;
- handlers = array_get(&ctx->view->index->expunge_handlers,
- &handlers_count);
-
- if (handlers_count == 0)
- return;
-
- /* set expunge handlers */
memset(&eh, 0, sizeof(eh));
if (array_is_created(&ctx->expunge_handlers))
array_clear(&ctx->expunge_handlers);
@@ -38,20 +31,23 @@
struct mail_index_expunge_handler, 64);
}
- extensions = array_get(&ctx->view->map->extensions, &ext_count);
+ rext = array_get(&ctx->view->index->extensions, &rext_count);
+ ext = array_get(&ctx->view->map->extensions, &ext_count);
id_map = array_get(&ctx->view->map->ext_id_map, &id_map_count);
contexts = array_get_modifyable(&ctx->extra_contexts, &context_count);
- count = I_MIN(handlers_count, id_map_count);
- for (idx_ext_id = 0; idx_ext_id < count; idx_ext_id++) {
+ i_assert(id_map_count <= rext_count);
+
+ for (idx_ext_id = 0; idx_ext_id < id_map_count; idx_ext_id++) {
map_ext_id = id_map[idx_ext_id];
- if (handlers[idx_ext_id] == NULL || map_ext_id == (uint32_t)-1)
+ if (rext[idx_ext_id].expunge_handler == NULL ||
+ map_ext_id == (uint32_t)-1)
continue;
i_assert(map_ext_id < context_count);
- eh.handler = handlers[idx_ext_id];
+ eh.handler = rext[idx_ext_id].expunge_handler;
eh.context = &contexts[map_ext_id];
- eh.record_offset = extensions[map_ext_id].record_offset;
+ eh.record_offset = ext[map_ext_id].record_offset;
array_append(&ctx->expunge_handlers, &eh, 1);
}
ctx->expunge_handlers_set = TRUE;
Index: mail-index.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-index/mail-index.c,v
retrieving revision 1.210
retrieving revision 1.211
diff -u -d -r1.210 -r1.211
--- mail-index.c 6 Jan 2006 12:48:55 -0000 1.210
+++ mail-index.c 6 Jan 2006 12:57:06 -0000 1.211
@@ -34,8 +34,6 @@
ARRAY_CREATE(&index->extensions, index->extension_pool,
struct mail_index_registered_ext, 5);
- ARRAY_CREATE(&index->expunge_handlers, default_pool,
- mail_index_expunge_handler_t *, 4);
ARRAY_CREATE(&index->sync_lost_handlers, default_pool,
mail_index_sync_lost_handler_t *, 4);
@@ -61,7 +59,6 @@
pool_unref(index->keywords_pool);
array_free(&index->sync_lost_handlers);
- array_free(&index->expunge_handlers);
array_free(&index->keywords);
i_free(index->error);
@@ -109,23 +106,23 @@
uint32_t ext_id,
mail_index_expunge_handler_t *cb)
{
- mail_index_expunge_handler_t **p;
+ struct mail_index_registered_ext *rext;
- p = array_idx_modifyable(&index->expunge_handlers, ext_id);
- i_assert(*p == NULL);
+ rext = array_idx_modifyable(&index->extensions, ext_id);
+ i_assert(rext->expunge_handler == NULL);
- *p = cb;
+ rext->expunge_handler = cb;
}
void mail_index_unregister_expunge_handler(struct mail_index *index,
uint32_t ext_id)
{
- mail_index_expunge_handler_t **p;
+ struct mail_index_registered_ext *rext;
- p = array_idx_modifyable(&index->expunge_handlers, ext_id);
- i_assert(*p != NULL);
+ rext = array_idx_modifyable(&index->extensions, ext_id);
+ i_assert(rext->expunge_handler != NULL);
- *p = NULL;
+ rext->expunge_handler = NULL;
}
void mail_index_register_sync_handler(struct mail_index *index, uint32_t ext_id,
- Previous message: [dovecot-cvs] dovecot/src/lib-index mail-index-private.h, 1.58,
1.59 mail-index-sync-ext.c, 1.13,
1.14 mail-index-transaction-view.c, 1.14,
1.15 mail-index-transaction.c, 1.69, 1.70 mail-index.c, 1.209,
1.210 mail-transaction-log-append.c, 1.12, 1.13
- Next message: [dovecot-cvs] dovecot/src/lib-index mail-index.c,1.211,1.212
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list