From 17fc718915a856a5bec7a415031acbba76c8bcfe Mon Sep 17 00:00:00 2001
From: svncommit <devs@roundcube.net>
Date: Fri, 14 Oct 2005 06:21:46 -0400
Subject: [PATCH] 

---
 program/include/rcube_imap.inc |   24 ++++++++++--------------
 1 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc
index e927dc7..8bbd9a2 100644
--- a/program/include/rcube_imap.inc
+++ b/program/include/rcube_imap.inc
@@ -297,11 +297,9 @@
   function _list_headers($mailbox='', $page=NULL, $sort_field='date', $sort_order='DESC')
     {
     $max = $this->_messagecount($mailbox /*, 'ALL', TRUE*/);
-    $a_out = array();
     
     if (!strlen($mailbox))
-      return $a_out;
-
+      return array();
 
     // get cached headers
     $a_msg_headers = $this->get_cache($mailbox.'.msg');
@@ -314,7 +312,8 @@
       $a_header_index = iil_C_FetchHeaders($this->conn, $mailbox, "1:$max");
       $a_msg_headers = array();
       foreach ($a_header_index as $i => $headers)
-        $a_msg_headers[$headers->uid] = $headers;
+		if (!$headers->deleted)
+			$a_msg_headers[$headers->uid] = $headers;
         
 // print "/**** fetch headers ****/\n";
       }
@@ -323,22 +322,19 @@
 
     // sort headers by a specific col
     $a_headers = iil_SortHeaders($a_msg_headers, $sort_field, $sort_order);
-    
+	// free memory
+	unset($a_msg_headers);
+	
     // write headers list to cache
     if (!$headers_cached)
-      $this->update_cache($mailbox.'.msg', $a_msg_headers);
-
-    if (is_array($a_headers))
-      foreach ($a_headers as $header)
-        if (!$header->deleted)
-          $a_out[] = $header;
+      $this->update_cache($mailbox.'.msg', $a_headers);
 
     // return complete list of messages
     if (strtolower($page)=='all')
-      return $a_out;
-
+      return $a_headers;
+	
     $start_msg = ($this->list_page-1) * $this->page_size;
-    return array_slice($a_out, $start_msg, $this->page_size);
+    return array_slice($a_headers, $start_msg, $this->page_size);
     }
 
 

--
Gitblit v1.9.1