From 01bdfd327c13faecb60ad7aa328557c3f5db3a9b Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Fri, 29 Oct 2010 06:27:22 -0400
Subject: [PATCH] - Improve performance of clear_mailbox() when skip_deleted=true

---
 program/include/rcube_imap.php |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index a4b18c9..ae53741 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -2620,13 +2620,11 @@
     function clear_mailbox($mbox_name=NULL)
     {
         $mailbox = !empty($mbox_name) ? $this->mod_mailbox($mbox_name) : $this->mailbox;
-        $msg_count = $this->_messagecount($mailbox, 'ALL');
 
-        if (!$msg_count) {
-            return 0;
+        // SELECT will set messages count for clearFolder()
+        if ($this->conn->select($mailbox)) {
+            $cleared = $this->conn->clearFolder($mailbox);
         }
-
-        $cleared = $this->conn->clearFolder($mailbox);
 
         // make sure the message count cache is cleared as well
         if ($cleared) {

--
Gitblit v1.9.1