/* searching code handles prefetching internally,
elsewhere we want to do it immediately */
- if (!mail->search_mail && !_mail->saving)
+ if (!mail->mail.search_mail && !_mail->saving)
(void)imapc_mail_prefetch(_mail);
}
return;
}
- if (!mail->search_mail) {
+ if (!mail->mail.search_mail) {
index_mail_update_access_parts_pre(_mail);
index_mail_update_access_parts_post(_mail);
} else {
{
struct index_mail *mail = INDEX_MAIL(_mail);
- /* make sure mailbox_search_*() users don't try to free the mail
- directly */
- i_assert(!mail->search_mail);
-
mail->freeing = TRUE;
mail->mail.v.close(_mail);
uint8_t header_match_value;
bool pop3_state_set:1;
- /* mail created by mailbox_search_*() */
- bool search_mail:1;
/* close() is being called from mail_free() */
bool freeing:1;
};
array_foreach_modifiable(&ctx->mails, mailp) {
struct index_mail *imail = INDEX_MAIL(*mailp);
- imail->search_mail = FALSE;
+ imail->mail.search_mail = FALSE;
mail_free(mailp);
}
ctx->mail_ctx.wanted_fields,
ctx->mail_ctx.wanted_headers);
imail = INDEX_MAIL(mail);
- imail->search_mail = TRUE;
+ imail->mail.search_mail = TRUE;
ctx->mail_ctx.transaction->stats_track = TRUE;
array_push_back(&ctx->mails, &mail);
const char *get_stream_reason;
bool autoexpunged:1;
+ /* mail created by mailbox_search_*() */
+ bool search_mail:1;
};
struct mailbox_list_context {
{
struct mail_private *p = (struct mail_private *)*mail;
+ /* make sure mailbox_search_*() users don't try to free the mail
+ directly */
+ i_assert(!p->search_mail);
+
p->v.free(*mail);
*mail = NULL;
}