]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
LAYOUT=index: Avoid unnecessary work for setting \Marked flags in LIST reply.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 21 Jun 2016 18:06:22 +0000 (21:06 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 21 Jun 2016 18:08:50 +0000 (21:08 +0300)
If MAILBOX_LIST_ITER_RETURN_NO_FLAGS is set, the caller doesn't care about
the flags.

src/lib-storage/list/mailbox-list-index-iter.c

index 08e02827b42633b9af3bfe3ed3a666c6b410760c..cbaf435032b55729b2f8c0184a4a61ed62e06de8 100644 (file)
@@ -101,10 +101,12 @@ mailbox_list_index_update_info(struct mailbox_list_index_iterate_context *ctx)
                                                    &ctx->info.flags);
        }
 
-       box = mailbox_alloc(ctx->ctx.list, ctx->info.vname, 0);
-       mailbox_list_index_status_set_info_flags(box, node->uid,
-                                                &ctx->info.flags);
-       mailbox_free(&box);
+       if ((ctx->ctx.flags & MAILBOX_LIST_ITER_RETURN_NO_FLAGS) == 0) {
+               box = mailbox_alloc(ctx->ctx.list, ctx->info.vname, 0);
+               mailbox_list_index_status_set_info_flags(box, node->uid,
+                                                        &ctx->info.flags);
+               mailbox_free(&box);
+       }
 }
 
 static void