changeset: 7063:a636bc4a4940
user: Kevin McCarthy <[email protected]>
date: Wed May 24 15:46:41 2017 -0700
link: http://dev.mutt.org/hg/mutt/rev/a636bc4a4940
Change imap body cache cleanup to use the uid_hash.
This should speed up $message_cache_clean cleanup when syncing.
diffs (31 lines):
diff -r 8904261ed212 -r a636bc4a4940 imap/message.c
--- a/imap/message.c Tue May 23 15:54:46 2017 -0700
+++ b/imap/message.c Wed May 24 15:46:41 2017 -0700
@@ -1128,24 +1128,17 @@
static int msg_cache_clean_cb (const char* id, body_cache_t* bcache, void*
data)
{
- unsigned int uv, uid, n;
+ unsigned int uv, uid;
IMAP_DATA* idata = (IMAP_DATA*)data;
if (sscanf (id, "%u-%u", &uv, &uid) != 2)
return 0;
/* bad UID */
- if (uv != idata->uid_validity)
+ if (uv != idata->uid_validity ||
+ !int_hash_find (idata->uid_hash, uid))
mutt_bcache_del (bcache, id);
- /* TODO: presort UIDs, walk in order */
- for (n = 0; n < idata->ctx->msgcount; n++)
- {
- if (uid == HEADER_DATA(idata->ctx->hdrs[n])->uid)
- return 0;
- }
- mutt_bcache_del (bcache, id);
-
return 0;
}