]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-index: Add data stack frames
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 27 Dec 2022 10:55:02 +0000 (05:55 -0500)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 11 Jan 2023 21:50:37 +0000 (23:50 +0200)
These functions are using data stack a bit unexpectedly. May help a bit
with memory usage, but likely not much.

src/lib-index/mail-index-map-read.c
src/lib-index/mail-index-sync.c
src/lib-index/mail-index-transaction.c

index 6999bf151100e9c0f342731ecade0216c8c95080..ac3e38f65971df51c7da23d5e1c065a04bd17cb8 100644 (file)
@@ -464,8 +464,9 @@ mail_index_map_latest_sync(struct mail_index *index,
        return ret;
 }
 
-int mail_index_map(struct mail_index *index,
-                  enum mail_index_sync_handler_type type)
+static int
+mail_index_map_real(struct mail_index *index,
+                   enum mail_index_sync_handler_type type)
 {
        const char *reason;
        int ret;
@@ -517,3 +518,13 @@ int mail_index_map(struct mail_index *index,
        index->mapping = FALSE;
        return ret;
 }
+
+int mail_index_map(struct mail_index *index,
+                  enum mail_index_sync_handler_type type)
+{
+       int ret;
+       T_BEGIN {
+               ret = mail_index_map_real(index, type);
+       } T_END;
+       return ret;
+}
index c847f1cc01f7eb966c2f700a79620708a4e57ae0..097bd45168a541fdb4264fd04a768b5007bef902 100644 (file)
@@ -429,8 +429,10 @@ mail_index_sync_begin_to2(struct mail_index *index,
        if (log_file_seq != (uint32_t)-1)
                flags |= MAIL_INDEX_SYNC_FLAG_REQUIRE_CHANGES;
 
-       ret = mail_index_sync_begin_init(index, flags, log_file_seq,
-                                        log_file_offset);
+       T_BEGIN {
+               ret = mail_index_sync_begin_init(index, flags, log_file_seq,
+                                                log_file_offset);
+       } T_END;
        if (ret <= 0)
                return ret;
 
index 0c61170a181e98275f6d30f6fd3f0af67ffb8687..d8245a3d9f6153bdc2c3ef3d4aef5ee3efe4b670 100644 (file)
@@ -230,9 +230,12 @@ static int mail_index_transaction_commit_v(struct mail_index_transaction *t,
                 mail_index_view_get_messages_count(t->view));
 
        changed = MAIL_INDEX_TRANSACTION_HAS_CHANGES(t) || t->reset;
-       ret = !changed ? 0 :
-               mail_index_transaction_commit_real(t, &result_r->commit_size,
-                                                  &result_r->changes_mask);
+       if (!changed)
+               ret = 0;
+       else T_BEGIN {
+               ret = mail_index_transaction_commit_real(t,
+                       &result_r->commit_size, &result_r->changes_mask);
+       } T_END;
        mail_transaction_log_get_head(index->log, &result_r->log_file_seq,
                                      &result_r->log_file_offset);