From: Siavash Tavakoli Date: Wed, 31 Mar 2021 16:28:46 +0000 (+0100) Subject: lib-index: Small refactor in mail_cache_lookup_field() X-Git-Tag: 2.3.15~79 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fa7a490bc3acf917be4a1cc97fa690a7ff9dae8f;p=thirdparty%2Fdovecot%2Fcore.git lib-index: Small refactor in mail_cache_lookup_field() Makes it easier to emit event in next commit regardless of code path. --- diff --git a/src/lib-index/mail-cache-lookup.c b/src/lib-index/mail-cache-lookup.c index c0695e4154..300c9e21c7 100644 --- a/src/lib-index/mail-cache-lookup.c +++ b/src/lib-index/mail-cache-lookup.c @@ -429,17 +429,17 @@ int mail_cache_lookup_field(struct mail_cache_view *view, buffer_t *dest_buf, mail_cache_lookup_iter_init(view, seq, &iter); field_def = &view->cache->fields[field_idx].field; if (field_def->type == MAIL_CACHE_FIELD_BITMASK) { - return mail_cache_lookup_bitmask(&iter, field_idx, - field_def->field_size, - dest_buf); - } - - /* return the first one that's found. if there are multiple - they're all identical. */ - while ((ret = mail_cache_lookup_iter_next(&iter, &field)) > 0) { - if (field.field_idx == field_idx) { - buffer_append(dest_buf, field.data, field.size); - break; + ret = mail_cache_lookup_bitmask(&iter, field_idx, + field_def->field_size, + dest_buf); + } else { + /* return the first one that's found. if there are multiple + they're all identical. */ + while ((ret = mail_cache_lookup_iter_next(&iter, &field)) > 0) { + if (field.field_idx == field_idx) { + buffer_append(dest_buf, field.data, field.size); + break; + } } } return ret;