dovecot-2.0: buffer_create_[const_]data() API change: Take buffe...
dovecot at dovecot.org
dovecot at dovecot.org
Tue Jul 14 05:24:33 EEST 2009
details: http://hg.dovecot.org/dovecot-2.0/rev/3da42dafa798
changeset: 9623:3da42dafa798
user: Timo Sirainen <tss at iki.fi>
date: Mon Jul 13 21:11:05 2009 -0400
description:
buffer_create_[const_]data() API change: Take buffer_t as parameter instead of allocating it.
diffstat:
12 files changed, 76 insertions(+), 89 deletions(-)
src/lib-index/mail-index-map.c | 2 -
src/lib-index/mail-index-modseq.c | 20 +++++------
src/lib-index/mail-index-transaction-export.c | 9 ++---
src/lib-index/mail-transaction-log-file.c | 6 +--
src/lib-index/mail-transaction-log-private.h | 2 +
src/lib-index/mail-transaction-log-view.c | 28 +++++++---------
src/lib-otp/otp-parse.c | 12 +++---
src/lib-storage/index/index-mail.c | 21 ++++--------
src/lib-storage/index/maildir/maildir-save.c | 8 ++--
src/lib/buffer.c | 43 +++++++++++--------------
src/lib/buffer.h | 10 +----
src/lib/str.c | 4 +-
diffs (truncated from 417 to 300 lines):
diff -r cae78e734cdb -r 3da42dafa798 src/lib-index/mail-index-map.c
--- a/src/lib-index/mail-index-map.c Mon Jul 13 19:54:28 2009 -0400
+++ b/src/lib-index/mail-index-map.c Mon Jul 13 21:11:05 2009 -0400
@@ -12,7 +12,7 @@ void mail_index_map_init_extbufs(struct
{
#define EXTENSION_NAME_APPROX_LEN 20
#define EXT_GLOBAL_ALLOC_SIZE \
- ((sizeof(map->extensions) + BUFFER_APPROX_SIZE) * 2)
+ ((sizeof(map->extensions) + sizeof(buffer_t)) * 2)
#define EXT_PER_ALLOC_SIZE \
(EXTENSION_NAME_APPROX_LEN + \
sizeof(struct mail_index_ext) + sizeof(uint32_t))
diff -r cae78e734cdb -r 3da42dafa798 src/lib-index/mail-index-modseq.c
--- a/src/lib-index/mail-index-modseq.c Mon Jul 13 19:54:28 2009 -0400
+++ b/src/lib-index/mail-index-modseq.c Mon Jul 13 21:11:05 2009 -0400
@@ -300,7 +300,7 @@ mail_index_modseq_update_old_rec(struct
{
ARRAY_TYPE(seq_range) uids = ARRAY_INIT;
const struct seq_range *rec;
- buffer_t *uid_buf;
+ buffer_t uid_buf;
unsigned int i, count;
uint32_t seq1, seq2;
@@ -319,9 +319,8 @@ mail_index_modseq_update_old_rec(struct
return;
}
case MAIL_TRANSACTION_FLAG_UPDATE: {
- uid_buf = buffer_create_const_data(pool_datastack_create(),
- tdata, thdr->size);
- array_create_from_buffer(&uids, uid_buf,
+ buffer_create_const_data(&uid_buf, tdata, thdr->size);
+ array_create_from_buffer(&uids, &uid_buf,
sizeof(struct mail_transaction_flag_update));
break;
}
@@ -333,16 +332,15 @@ mail_index_modseq_update_old_rec(struct
if ((seqset_offset % 4) != 0)
seqset_offset += 4 - (seqset_offset % 4);
- uid_buf = buffer_create_const_data(pool_datastack_create(),
- CONST_PTR_OFFSET(tdata, seqset_offset),
- thdr->size - seqset_offset);
- array_create_from_buffer(&uids, uid_buf, sizeof(uint32_t)*2);
+ buffer_create_const_data(&uid_buf,
+ CONST_PTR_OFFSET(tdata, seqset_offset),
+ thdr->size - seqset_offset);
+ array_create_from_buffer(&uids, &uid_buf, sizeof(uint32_t)*2);
break;
}
case MAIL_TRANSACTION_KEYWORD_RESET:
- uid_buf = buffer_create_const_data(pool_datastack_create(),
- tdata, thdr->size);
- array_create_from_buffer(&uids, uid_buf,
+ buffer_create_const_data(&uid_buf, tdata, thdr->size);
+ array_create_from_buffer(&uids, &uid_buf,
sizeof(struct mail_transaction_keyword_reset));
break;
default:
diff -r cae78e734cdb -r 3da42dafa798 src/lib-index/mail-index-transaction-export.c
--- a/src/lib-index/mail-index-transaction-export.c Mon Jul 13 19:54:28 2009 -0400
+++ b/src/lib-index/mail-index-transaction-export.c Mon Jul 13 21:11:05 2009 -0400
@@ -171,7 +171,7 @@ mail_transaction_log_append_ext_intros(s
uint32_t ext_id, reset_id;
const struct mail_transaction_ext_reset *reset;
const uint32_t *reset_ids;
- buffer_t *reset_buf;
+ buffer_t reset_buf;
if (!array_is_created(&t->ext_resizes)) {
resize = NULL;
@@ -208,9 +208,8 @@ mail_transaction_log_append_ext_intros(s
}
memset(&ext_reset, 0, sizeof(ext_reset));
- reset_buf = buffer_create_data(pool_datastack_create(),
- &ext_reset, sizeof(ext_reset));
- buffer_set_used_size(reset_buf, sizeof(ext_reset));
+ buffer_create_data(&reset_buf, &ext_reset, sizeof(ext_reset));
+ buffer_set_used_size(&reset_buf, sizeof(ext_reset));
for (ext_id = 0; ext_id < ext_count; ext_id++) {
if (ext_id < reset_count)
@@ -233,7 +232,7 @@ mail_transaction_log_append_ext_intros(s
if (ext_reset.new_reset_id != 0) {
i_assert(ext_id < reset_id_count &&
ext_reset.new_reset_id == reset_ids[ext_id]);
- log_append_buffer(ctx, reset_buf,
+ log_append_buffer(ctx, &reset_buf,
MAIL_TRANSACTION_EXT_RESET);
}
if (ext_id < hdrs_count && hdrs[ext_id].alloc_size > 0) {
diff -r cae78e734cdb -r 3da42dafa798 src/lib-index/mail-transaction-log-file.c
--- a/src/lib-index/mail-transaction-log-file.c Mon Jul 13 19:54:28 2009 -0400
+++ b/src/lib-index/mail-transaction-log-file.c Mon Jul 13 21:11:05 2009 -0400
@@ -1390,9 +1390,9 @@ mail_transaction_log_file_mmap(struct ma
}
}
- file->buffer = buffer_create_const_data(default_pool,
- file->mmap_base,
- file->mmap_size);
+ buffer_create_const_data(&file->mmap_buffer,
+ file->mmap_base, file->mmap_size);
+ file->buffer = &file->mmap_buffer;
file->buffer_offset = 0;
return 0;
}
diff -r cae78e734cdb -r 3da42dafa798 src/lib-index/mail-transaction-log-private.h
--- a/src/lib-index/mail-transaction-log-private.h Mon Jul 13 19:54:28 2009 -0400
+++ b/src/lib-index/mail-transaction-log-private.h Mon Jul 13 21:11:05 2009 -0400
@@ -1,6 +1,7 @@
#ifndef MAIL_TRANSACTION_LOG_VIEW_H
#define MAIL_TRANSACTION_LOG_VIEW_H
+#include "buffer.h"
#include "file-dotlock.h"
#include "mail-transaction-log.h"
@@ -44,6 +45,7 @@ struct mail_transaction_log_file {
uoff_t last_size;
struct mail_transaction_log_header hdr;
+ buffer_t mmap_buffer;
buffer_t *buffer;
uoff_t buffer_offset;
void *mmap_base;
diff -r cae78e734cdb -r 3da42dafa798 src/lib-index/mail-transaction-log-view.c
--- a/src/lib-index/mail-transaction-log-view.c Mon Jul 13 19:54:28 2009 -0400
+++ b/src/lib-index/mail-transaction-log-view.c Mon Jul 13 21:11:05 2009 -0400
@@ -400,7 +400,7 @@ log_view_is_record_valid(struct mail_tra
{
enum mail_transaction_type rec_type;
ARRAY_TYPE(seq_range) uids = ARRAY_INIT;
- buffer_t *uid_buf = NULL;
+ buffer_t uid_buf;
uint32_t rec_size;
bool ret = TRUE;
@@ -437,15 +437,13 @@ log_view_is_record_valid(struct mail_tra
}
break;
case MAIL_TRANSACTION_EXPUNGE:
- uid_buf = buffer_create_const_data(pool_datastack_create(),
- data, rec_size);
- array_create_from_buffer(&uids, uid_buf,
+ buffer_create_const_data(&uid_buf, data, rec_size);
+ array_create_from_buffer(&uids, &uid_buf,
sizeof(struct mail_transaction_expunge));
break;
case MAIL_TRANSACTION_FLAG_UPDATE:
- uid_buf = buffer_create_const_data(pool_datastack_create(),
- data, rec_size);
- array_create_from_buffer(&uids, uid_buf,
+ buffer_create_const_data(&uid_buf, data, rec_size);
+ array_create_from_buffer(&uids, &uid_buf,
sizeof(struct mail_transaction_flag_update));
break;
case MAIL_TRANSACTION_KEYWORD_UPDATE: {
@@ -463,16 +461,16 @@ log_view_is_record_valid(struct mail_tra
break;
}
- uid_buf = buffer_create_const_data(pool_datastack_create(),
- CONST_PTR_OFFSET(data, seqset_offset),
- rec_size - seqset_offset);
- array_create_from_buffer(&uids, uid_buf, sizeof(uint32_t)*2);
+ buffer_create_const_data(&uid_buf,
+ CONST_PTR_OFFSET(data, seqset_offset),
+ rec_size - seqset_offset);
+ array_create_from_buffer(&uids, &uid_buf,
+ sizeof(uint32_t)*2);
break;
}
case MAIL_TRANSACTION_KEYWORD_RESET:
- uid_buf = buffer_create_const_data(pool_datastack_create(),
- data, rec_size);
- array_create_from_buffer(&uids, uid_buf,
+ buffer_create_const_data(&uid_buf, data, rec_size);
+ array_create_from_buffer(&uids, &uid_buf,
sizeof(struct mail_transaction_keyword_reset));
break;
default:
@@ -483,7 +481,7 @@ log_view_is_record_valid(struct mail_tra
const struct seq_range *rec, *prev = NULL;
unsigned int i, count = array_count(&uids);
- if ((uid_buf->used % uids.arr.element_size) != 0) {
+ if ((uid_buf.used % uids.arr.element_size) != 0) {
mail_transaction_log_file_set_corrupted(file,
"Invalid record size (type=0x%x)", rec_type);
ret = FALSE;
diff -r cae78e734cdb -r 3da42dafa798 src/lib-otp/otp-parse.c
--- a/src/lib-otp/otp-parse.c Mon Jul 13 19:54:28 2009 -0400
+++ b/src/lib-otp/otp-parse.c Mon Jul 13 21:11:05 2009 -0400
@@ -36,14 +36,14 @@ int otp_read_hex(const char *data, const
int otp_read_hex(const char *data, const char **endptr, unsigned char *hash)
{
string_t *str;
- buffer_t *buf;
+ buffer_t buf;
unsigned int i = 0;
if (data == NULL)
return -1;
str = t_str_new(18);
- buf = buffer_create_data(unsafe_data_stack_pool, hash, OTP_HASH_SIZE);
+ buffer_create_data(&buf, hash, OTP_HASH_SIZE);
while (*data) {
char c = *data;
@@ -68,12 +68,12 @@ int otp_read_hex(const char *data, const
if (i < OTP_HASH_SIZE * 2)
return -1;
- return hex_to_binary(str_c(str), buf);
+ return hex_to_binary(str_c(str), &buf);
}
#define add_word() do { \
tmp = otp_lookup_word(str_c(word)); \
- buffer_append(buf, &tmp, sizeof(tmp)); \
+ buffer_append(&buf, &tmp, sizeof(tmp)); \
count++; \
} while (0)
@@ -83,7 +83,7 @@ int otp_read_words(const char *data, con
unsigned int len = 0, count = 0;
unsigned int parity = 0, bits[OTP_WORDS_NUMBER], tmp;
string_t *word;
- buffer_t *buf;
+ buffer_t buf;
if (data == NULL)
return -1;
@@ -92,7 +92,7 @@ int otp_read_words(const char *data, con
data = otp_skip_lws(data);
- buf = buffer_create_data(pool_datastack_create(), bits, sizeof(bits));
+ buffer_create_data(&buf, bits, sizeof(bits));
for (; *data && (count < OTP_WORDS_NUMBER); data++) {
char c = *data;
diff -r cae78e734cdb -r 3da42dafa798 src/lib-storage/index/index-mail.c
--- a/src/lib-storage/index/index-mail.c Mon Jul 13 19:54:28 2009 -0400
+++ b/src/lib-storage/index/index-mail.c Mon Jul 13 21:11:05 2009 -0400
@@ -104,21 +104,16 @@ static bool index_mail_get_fixed_field(s
void *data, size_t data_size)
{
unsigned int field_idx = mail->ibox->cache_fields[field].idx;
+ buffer_t buf;
int ret;
- T_BEGIN {
- buffer_t *buf;
-
- buf = buffer_create_data(pool_datastack_create(),
- data, data_size);
-
- if (index_mail_cache_lookup_field(mail, buf, field_idx) <= 0)
- ret = FALSE;
- else {
- i_assert(buf->used == data_size);
- ret = TRUE;
- }
- } T_END;
+ buffer_create_data(&buf, data, data_size);
+ if (index_mail_cache_lookup_field(mail, &buf, field_idx) <= 0)
+ ret = FALSE;
+ else {
+ i_assert(buf.used == data_size);
+ ret = TRUE;
+ }
return ret;
}
diff -r cae78e734cdb -r 3da42dafa798 src/lib-storage/index/maildir/maildir-save.c
--- a/src/lib-storage/index/maildir/maildir-save.c Mon Jul 13 19:54:28 2009 -0400
+++ b/src/lib-storage/index/maildir/maildir-save.c Mon Jul 13 21:11:05 2009 -0400
@@ -51,7 +51,7 @@ struct maildir_save_context {
struct maildir_filename *files, **files_tail, *file_last;
unsigned int files_count;
- buffer_t *keywords_buffer;
+ buffer_t keywords_buffer;
ARRAY_TYPE(keyword_indexes) keywords_array;
struct istream *input;
@@ -124,8 +124,8 @@ maildir_save_transaction_init(struct mai
ctx->newdir = p_strconcat(pool, mbox->ibox.box.path, "/new", NULL);
ctx->curdir = p_strconcat(pool, mbox->ibox.box.path, "/cur", NULL);
- ctx->keywords_buffer = buffer_create_const_data(pool, NULL, 0);
- array_create_from_buffer(&ctx->keywords_array, ctx->keywords_buffer,
+ buffer_create_const_data(&ctx->keywords_buffer, NULL, 0);
+ array_create_from_buffer(&ctx->keywords_array, &ctx->keywords_buffer,
sizeof(unsigned int));
ctx->last_save_finished = TRUE;
More information about the dovecot-cvs
mailing list