From: Timo Sirainen Date: Sun, 5 Apr 2020 15:09:18 +0000 (+0300) Subject: lib-index: mail_cache_decision_state_update() - Minor refactoring X-Git-Tag: 2.3.11.2~346 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=00b5b8c26904dbf90eb3c6ee4cacbd4b57910baa;p=thirdparty%2Fdovecot%2Fcore.git lib-index: mail_cache_decision_state_update() - Minor refactoring Simplifies the next commit. --- diff --git a/src/lib-index/mail-cache-decisions.c b/src/lib-index/mail-cache-decisions.c index 433e55393e..5987060525 100644 --- a/src/lib-index/mail-cache-decisions.c +++ b/src/lib-index/mail-cache-decisions.c @@ -108,7 +108,9 @@ void mail_cache_decision_state_update(struct mail_cache_view *view, } /* update last_used about once a day */ - if (ioloop_time - cache->fields[field].field.last_used > 3600*24) + bool last_used_need_update = + ioloop_time - cache->fields[field].field.last_used > 3600*24; + if (last_used_need_update) mail_cache_update_last_used(cache, field); if (dec != MAIL_CACHE_DECISION_TEMP) { @@ -122,8 +124,10 @@ void mail_cache_decision_state_update(struct mail_cache_view *view, hdr = mail_index_get_header(view->view); /* see if we want to change decision from TEMP to YES */ - if (uid < cache->fields[field].uid_highwater || - uid < hdr->day_first_uid[7]) { + if (uid >= cache->fields[field].uid_highwater && + uid >= hdr->day_first_uid[7]) { + cache->fields[field].uid_highwater = uid; + } else { /* a) nonordered access within this session. if client doesn't request messages in growing order, we assume it doesn't have a permanent local cache. @@ -146,8 +150,6 @@ void mail_cache_decision_state_update(struct mail_cache_view *view, add_str("new_decision", "yes"); e_debug(e->event(), "Changing field %s decision temp -> yes (uid=%u)", cache->fields[field].field.name, uid); - } else { - cache->fields[field].uid_highwater = uid; } }