dovecot-2.2: lib-storage: Mailbox tree API supports now includin...
dovecot at dovecot.org
dovecot at dovecot.org
Mon Aug 13 00:36:53 EEST 2012
details: http://hg.dovecot.org/dovecot-2.2/rev/acc60089da4f
changeset: 14885:acc60089da4f
user: Timo Sirainen <tss at iki.fi>
date: Mon Aug 13 00:36:38 2012 +0300
description:
lib-storage: Mailbox tree API supports now including extra data in the nodes.
diffstat:
src/lib-storage/mailbox-tree.c | 12 +++++++++++-
src/lib-storage/mailbox-tree.h | 2 ++
2 files changed, 13 insertions(+), 1 deletions(-)
diffs (53 lines):
diff -r 7aece00b8538 -r acc60089da4f src/lib-storage/mailbox-tree.c
--- a/src/lib-storage/mailbox-tree.c Mon Aug 13 00:33:47 2012 +0300
+++ b/src/lib-storage/mailbox-tree.c Mon Aug 13 00:36:38 2012 +0300
@@ -9,6 +9,7 @@
pool_t pool;
char separator;
bool parents_nonexistent;
+ unsigned int node_size;
struct mailbox_node *nodes;
};
@@ -28,11 +29,20 @@
struct mailbox_tree_context *mailbox_tree_init(char separator)
{
+ return mailbox_tree_init_size(separator, sizeof(struct mailbox_node));
+}
+
+struct mailbox_tree_context *
+mailbox_tree_init_size(char separator, unsigned int mailbox_node_size)
+{
struct mailbox_tree_context *tree;
+ i_assert(mailbox_node_size >= sizeof(struct mailbox_node));
+
tree = i_new(struct mailbox_tree_context, 1);
tree->pool = pool_alloconly_create(MEMPOOL_GROWING"mailbox_tree", 10240);
tree->separator = separator;
+ tree->node_size = mailbox_node_size;
return tree;
}
@@ -104,7 +114,7 @@
if (!create)
break;
- *node = p_new(tree->pool, struct mailbox_node, 1);
+ *node = p_malloc(tree->pool, tree->node_size);
(*node)->parent = parent;
(*node)->name = p_strdup(tree->pool, name);
if (tree->parents_nonexistent)
diff -r 7aece00b8538 -r acc60089da4f src/lib-storage/mailbox-tree.h
--- a/src/lib-storage/mailbox-tree.h Mon Aug 13 00:33:47 2012 +0300
+++ b/src/lib-storage/mailbox-tree.h Mon Aug 13 00:36:38 2012 +0300
@@ -13,6 +13,8 @@
};
struct mailbox_tree_context *mailbox_tree_init(char separator);
+struct mailbox_tree_context *
+mailbox_tree_init_size(char separator, unsigned int mailbox_node_size);
void mailbox_tree_deinit(struct mailbox_tree_context **tree);
void mailbox_tree_set_separator(struct mailbox_tree_context *tree,
More information about the dovecot-cvs
mailing list