Mercurial > dovecot > original-hg > dovecot-1.2
changeset 6359:c54c07f30a97 HEAD
Fixed opening indexes to memory.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 09 Sep 2007 03:59:09 +0300 |
parents | 6bd13d514294 |
children | 461ae76c84da |
files | src/lib-index/mail-index.c |
diffstat | 1 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-index.c Sun Sep 09 03:58:57 2007 +0300 +++ b/src/lib-index/mail-index.c Sun Sep 09 03:59:09 2007 +0300 @@ -415,9 +415,11 @@ (void)mail_index_try_open(index); if (index->indexid == 0) { - /* create a new indexid for us */ + /* Create a new indexid for us. If we're opening index + into memory, index->map doesn't exist yet. */ index->indexid = ioloop_time; - index->map->hdr.indexid = index->indexid; + if (index->map != NULL) + index->map->hdr.indexid = index->indexid; } ret = mail_transaction_log_create(index->log); @@ -429,8 +431,11 @@ /* doesn't exist / corrupted */ mail_transaction_log_close(index->log); ret = mail_transaction_log_create(index->log); - if (ret == 0) + if (ret == 0) { + if (index->map != NULL) + mail_index_unmap(&index->map); index->map = mail_index_map_alloc(index); + } } } if (ret < 0) {