Mercurial > dovecot > original-hg > dovecot-1.2
changeset 3823:48a2d15ae0c4 HEAD
Converted some buffers to arrays.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 06 Jan 2006 17:25:46 +0200 |
parents | 5ba04396479d |
children | 3e756ea0474b |
files | src/lib-index/mail-index-view-private.h src/lib-index/mail-index-view-sync.c src/lib-index/mail-index-view.c |
diffstat | 3 files changed, 39 insertions(+), 39 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-index-view-private.h Fri Jan 06 17:25:08 2006 +0200 +++ b/src/lib-index/mail-index-view-private.h Fri Jan 06 17:25:46 2006 +0200 @@ -36,13 +36,13 @@ unsigned int indexid; struct mail_index_map *map; struct mail_index_map *new_map; - buffer_t *map_refs; + array_t ARRAY_DEFINE(map_refs, struct mail_index_map *); struct mail_index_header hdr; uint32_t log_file_seq; uoff_t log_file_offset; - buffer_t *log_syncs; + array_t ARRAY_DEFINE(log_syncs, struct mail_index_view_log_sync_pos); int transactions; unsigned int lock_id;
--- a/src/lib-index/mail-index-view-sync.c Fri Jan 06 17:25:08 2006 +0200 +++ b/src/lib-index/mail-index-view-sync.c Fri Jan 06 17:25:46 2006 +0200 @@ -255,17 +255,16 @@ static int view_is_transaction_synced(struct mail_index_view *view, uint32_t seq, uoff_t offset) { - const struct mail_index_view_log_sync_pos *pos, *end; - size_t size; + const struct mail_index_view_log_sync_pos *pos; + unsigned int i, count; - if (view->log_syncs == NULL) + if (!array_is_created(&view->log_syncs)) return 0; - pos = buffer_get_data(view->log_syncs, &size); - end = CONST_PTR_OFFSET(pos, size); - - for (; pos != end; pos++) { - if (pos->log_file_offset == offset && pos->log_file_seq == seq) + pos = array_get(&view->log_syncs, &count); + for (i = 0; i < count; i++) { + if (pos[i].log_file_offset == offset && + pos[i].log_file_seq == seq) return 1; } @@ -450,8 +449,8 @@ if (ctx->sync_map_update) mail_index_sync_map_deinit(&ctx->sync_map_ctx); - if (view->log_syncs != NULL && !ctx->skipped_some) - buffer_set_used_size(view->log_syncs, 0); + if (array_is_created(&view->log_syncs) && !ctx->skipped_some) + array_clear(&view->log_syncs); if (!ctx->last_read && ctx->hdr != NULL && ctx->data_offset != ctx->hdr->size) { @@ -484,13 +483,14 @@ uint32_t log_file_seq, uoff_t log_file_offset) { - struct mail_index_view_log_sync_pos pos; + struct mail_index_view_log_sync_pos *pos; - memset(&pos, 0, sizeof(pos)); - pos.log_file_seq = log_file_seq; - pos.log_file_offset = log_file_offset; + if (!array_is_created(&view->log_syncs)) { + ARRAY_CREATE(&view->log_syncs, default_pool, + struct mail_index_view_log_sync_pos, 32); + } - if (view->log_syncs == NULL) - view->log_syncs = buffer_create_dynamic(default_pool, 128); - buffer_append(view->log_syncs, &pos, sizeof(pos)); + pos = array_append_space(&view->log_syncs); + pos->log_file_seq = log_file_seq; + pos->log_file_offset = log_file_offset; }
--- a/src/lib-index/mail-index-view.c Fri Jan 06 17:25:08 2006 +0200 +++ b/src/lib-index/mail-index-view.c Fri Jan 06 17:25:46 2006 +0200 @@ -36,12 +36,13 @@ mail_index_view_unlock(view); mail_transaction_log_view_close(view->log_view); - if (view->log_syncs != NULL) - buffer_free(view->log_syncs); + if (array_is_created(&view->log_syncs)) + array_free(&view->log_syncs); mail_index_unmap(view->index, view->map); - mail_index_view_unref_maps(view); - if (view->map_refs != NULL) - buffer_free(view->map_refs); + if (array_is_created(&view->map_refs)) { + mail_index_view_unref_maps(view); + array_free(&view->map_refs); + } i_free(view); } @@ -123,40 +124,39 @@ static void mail_index_view_ref_map(struct mail_index_view *view, struct mail_index_map *map) { - const struct mail_index_map *const *maps; - size_t i, size; + struct mail_index_map *const *maps; + unsigned int i, count; - if (view->map_refs != NULL) { - maps = buffer_get_data(view->map_refs, &size); - size /= sizeof(*maps); + if (array_is_created(&view->map_refs)) { + maps = array_get(&view->map_refs, &count); - for (i = 0; i < size; i++) { + /* if map is already referenced, do nothing */ + for (i = 0; i < count; i++) { if (maps[i] == map) return; } } else { - view->map_refs = buffer_create_dynamic(default_pool, 128); + ARRAY_CREATE(&view->map_refs, default_pool, + struct mail_index_map *, 4); } map->refcount++; - buffer_append(view->map_refs, &map, sizeof(map)); + array_append(&view->map_refs, &map, 1); } void mail_index_view_unref_maps(struct mail_index_view *view) { struct mail_index_map *const *maps; - size_t i, size; + unsigned int i, count; - if (view->map_refs == NULL) + if (!array_is_created(&view->map_refs)) return; - maps = buffer_get_data(view->map_refs, &size); - size /= sizeof(*maps); - - for (i = 0; i < size; i++) + maps = array_get(&view->map_refs, &count); + for (i = 0; i < count; i++) mail_index_unmap(view->index, maps[i]); - buffer_set_used_size(view->map_refs, 0); + array_clear(&view->map_refs); } static uint32_t _view_get_messages_count(struct mail_index_view *view)