]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Moved mail_index_keywords_*() to mail-index.c.
authorTimo Sirainen <tss@iki.fi>
Mon, 13 Jul 2009 17:16:45 +0000 (13:16 -0400)
committerTimo Sirainen <tss@iki.fi>
Mon, 13 Jul 2009 17:16:45 +0000 (13:16 -0400)
--HG--
branch : HEAD

src/lib-index/mail-index-transaction.c
src/lib-index/mail-index.c

index 6542a4eea3b409b1070ac0f81af695b5ddda98b6..a0e0dc6b21448865f4c8b4a7941c76ea521b0617 100644 (file)
@@ -1094,96 +1094,6 @@ int mail_index_atomic_inc_ext(struct mail_index_transaction *t,
        return diff32;
 }
 
-struct mail_keywords *
-mail_index_keywords_create(struct mail_index *index,
-                          const char *const keywords[])
-{
-       struct mail_keywords *k;
-       unsigned int src, dest, i, count;
-
-       count = str_array_length(keywords);
-       if (count == 0) {
-               k = i_new(struct mail_keywords, 1);
-               k->index = index;
-               k->refcount = 1;
-               return k;
-       }
-
-       /* @UNSAFE */
-       k = i_malloc(sizeof(struct mail_keywords) +
-                    (sizeof(k->idx) * (count-1)));
-       k->index = index;
-       k->refcount = 1;
-
-       /* look up the keywords from index. they're never removed from there
-          so we can permanently store indexes to them. */
-       for (src = dest = 0; src < count; src++) {
-               mail_index_keyword_lookup_or_create(index, keywords[src],
-                                                   &k->idx[dest]);
-               /* ignore if this is a duplicate */
-               for (i = 0; i < src; i++) {
-                       if (k->idx[i] == k->idx[dest])
-                               break;
-               }
-               if (i == src)
-                       dest++;
-       }
-       k->count = dest;
-       return k;
-}
-
-struct mail_keywords *
-mail_index_keywords_create_from_indexes(struct mail_index *index,
-                                       const ARRAY_TYPE(keyword_indexes)
-                                               *keyword_indexes)
-{
-       struct mail_keywords *k;
-       const unsigned int *indexes;
-       unsigned int src, dest, i, count;
-
-       indexes = array_get(keyword_indexes, &count);
-       if (count == 0) {
-               k = i_new(struct mail_keywords, 1);
-               k->index = index;
-               k->refcount = 1;
-               return k;
-       }
-
-       /* @UNSAFE */
-       k = i_malloc(sizeof(struct mail_keywords) +
-                    (sizeof(k->idx) * (count-1)));
-       k->index = index;
-       k->refcount = 1;
-
-       /* copy but skip duplicates */
-       for (src = dest = 0; src < count; src++) {
-               for (i = 0; i < src; i++) {
-                       if (k->idx[i] == indexes[src])
-                               break;
-               }
-               if (i == src)
-                       k->idx[dest++] = indexes[src];
-       }
-       k->count = dest;
-       return k;
-}
-
-void mail_index_keywords_ref(struct mail_keywords *keywords)
-{
-       keywords->refcount++;
-}
-
-void mail_index_keywords_unref(struct mail_keywords **_keywords)
-{
-       struct mail_keywords *keywords = *_keywords;
-
-       i_assert(keywords->refcount > 0);
-
-       *_keywords = NULL;
-       if (--keywords->refcount == 0)
-               i_free(keywords);
-}
-
 static bool
 keyword_update_has_changes(struct mail_index_transaction *t, uint32_t seq,
                           enum modify_type modify_type,
index 9774759fc1824592da70bebc9eecd827c4e7785e..6f65871879b4d72f74e85572aa02f98a01a82310 100644 (file)
@@ -258,6 +258,58 @@ const ARRAY_TYPE(keywords) *mail_index_get_keywords(struct mail_index *index)
        return &index->keywords;
 }
 
+struct mail_keywords *
+mail_index_keywords_create_from_indexes(struct mail_index *index,
+                                       const ARRAY_TYPE(keyword_indexes)
+                                               *keyword_indexes)
+{
+       struct mail_keywords *k;
+       const unsigned int *indexes;
+       unsigned int src, dest, i, count;
+
+       indexes = array_get(keyword_indexes, &count);
+       if (count == 0) {
+               k = i_new(struct mail_keywords, 1);
+               k->index = index;
+               k->refcount = 1;
+               return k;
+       }
+
+       /* @UNSAFE */
+       k = i_malloc(sizeof(struct mail_keywords) +
+                    (sizeof(k->idx) * (count-1)));
+       k->index = index;
+       k->refcount = 1;
+
+       /* copy but skip duplicates */
+       for (src = dest = 0; src < count; src++) {
+               for (i = 0; i < src; i++) {
+                       if (k->idx[i] == indexes[src])
+                               break;
+               }
+               if (i == src)
+                       k->idx[dest++] = indexes[src];
+       }
+       k->count = dest;
+       return k;
+}
+
+void mail_index_keywords_ref(struct mail_keywords *keywords)
+{
+       keywords->refcount++;
+}
+
+void mail_index_keywords_unref(struct mail_keywords **_keywords)
+{
+       struct mail_keywords *keywords = *_keywords;
+
+       i_assert(keywords->refcount > 0);
+
+       *_keywords = NULL;
+       if (--keywords->refcount == 0)
+               i_free(keywords);
+}
+
 int mail_index_try_open_only(struct mail_index *index)
 {
        i_assert(index->fd == -1);