[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: wanderlust is sooo slooowww...



At Mon, 03 Nov 2014 12:24:44 +0900,
Kazuhiro Ito wrote:
> 
> > 3. When syncing a filter folder, after receiving a list of searched
> > messages, WL will attempt to perform a complete sync.  This complete
> > sync is not necessary because we know there are no deletions, only
> > new messages. This is fixed here:
> 
> I think "we know there are no deletions, only new messages" is not
> true.  In "/last:20/+inbox" folder, I confirmed deletion occurs when I
> enter the folder after new messages are added in "+inbox" folder.
> 
> Please see the attached patch (though which does not contain all of
> your optimization for elmo-filter.el).

Hi Kazuhiro,

What I meant was that we know there are no deletions in the filter
folder’s target folder (the IMAP folder) that the filter folder needs
to know about, because we have just found these message numbers via a
search.

I like your solution, though. I have a suggestion that might make it
even simpler. I have searched through the code for usage of the MASK
argument to elmo-folder-synchronize. The only place I can find that
actually supplies this argument is the filter folder
elmo-folder-synchronize method (in elmo-filter.el). In this case we
can assume that all the messages in the MASK argument exist (because
we have just found them via search) and so we can use the mask
argument rather than have an additional list-numbers argument.
See attached.

best, Erik


-- 
Sent from my free software system <http://fsf.org/>.
Unstaged changes
1 file changed, 3 insertions(+), 1 deletion(-)
 elmo/elmo.el | 4 +++-

	Modified   elmo/elmo.el
diff --git a/elmo/elmo.el b/elmo/elmo.el
index 4605175..1633e70 100644
--- a/elmo/elmo.el
+++ b/elmo/elmo.el
@@ -1653,7 +1653,9 @@ If update process is interrupted, return nil.")
 	  (message "Checking folder diff...")
 	  (elmo-set-list
 	   '(diff-new diff-del)
-	   (elmo-list-diff (elmo-folder-list-messages folder)
+	   (elmo-list-diff (if (and mask (not ignore-msgdb))
+                               mask
+                             (elmo-folder-list-messages folder))
 			   (elmo-folder-list-messages folder nil 'in-msgdb)))
 	  (when diff-new
 	    (unless disable-killed