]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Add data stack frames to mail_set_*()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 26 Apr 2021 11:13:09 +0000 (14:13 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Tue, 4 May 2021 07:02:35 +0000 (07:02 +0000)
This can reduce data stack usage significantly with mail thread building.

src/lib-storage/mail.c

index 6bcbbd1e34d058b530866a917498921f5be59ef7..e1ea330ab6282339bedd21f9a6359fa70a7094bb 100644 (file)
@@ -49,21 +49,29 @@ void mail_set_seq(struct mail *mail, uint32_t seq)
 {
        struct mail_private *p = (struct mail_private *)mail;
 
-       p->v.set_seq(mail, seq, FALSE);
+       T_BEGIN {
+               p->v.set_seq(mail, seq, FALSE);
+       } T_END;
 }
 
 void mail_set_seq_saving(struct mail *mail, uint32_t seq)
 {
        struct mail_private *p = (struct mail_private *)mail;
 
-       p->v.set_seq(mail, seq, TRUE);
+       T_BEGIN {
+               p->v.set_seq(mail, seq, TRUE);
+       } T_END;
 }
 
 bool mail_set_uid(struct mail *mail, uint32_t uid)
 {
        struct mail_private *p = (struct mail_private *)mail;
+       bool ret;
 
-       return p->v.set_uid(mail, uid);
+       T_BEGIN {
+               ret = p->v.set_uid(mail, uid);
+       } T_END;
+       return ret;
 }
 
 bool mail_prefetch(struct mail *mail)