From: Timo Sirainen Date: Mon, 4 Jun 2018 16:03:20 +0000 (+0300) Subject: lib-storage: Move code to index_mail_try_set_body_size() X-Git-Tag: 2.3.3.rc1~256 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=69b714836fa3c18a8645ef957a5d5e187b3ad072;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Move code to index_mail_try_set_body_size() This also adds a check to make sure virtual_size is set. With the current caller it was already guaranteed to be set. --- diff --git a/src/lib-storage/index/index-mail.c b/src/lib-storage/index/index-mail.c index 2efca02a1c..76c3358c47 100644 --- a/src/lib-storage/index/index-mail.c +++ b/src/lib-storage/index/index-mail.c @@ -462,6 +462,21 @@ const uint32_t *index_mail_get_vsize_extension(struct mail *_mail) return vsize; } +static void index_mail_try_set_body_size(struct index_mail *mail) +{ + struct index_mail_data *data = &mail->data; + + if (data->hdr_size_set && + data->physical_size != (uoff_t)-1 && + data->virtual_size != (uoff_t)-1) { + data->body_size.physical_size = data->physical_size - + data->hdr_size.physical_size; + data->body_size.virtual_size = data->virtual_size - + data->hdr_size.virtual_size; + data->body_size_set = TRUE; + } +} + bool index_mail_get_cached_virtual_size(struct index_mail *mail, uoff_t *size_r) { struct index_mail_data *data = &mail->data; @@ -485,13 +500,7 @@ bool index_mail_get_cached_virtual_size(struct index_mail *mail, uoff_t *size_r) return FALSE; } } - if (data->hdr_size_set && data->physical_size != (uoff_t)-1) { - data->body_size.physical_size = data->physical_size - - data->hdr_size.physical_size; - data->body_size.virtual_size = data->virtual_size - - data->hdr_size.virtual_size; - data->body_size_set = TRUE; - } + index_mail_try_set_body_size(mail); *size_r = data->virtual_size; /* if vsize is present and wanted for index, but missing from index