evolution-data-server r9802 - branches/gnome-2-24/camel/providers/imap
- From: sragavan svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution-data-server r9802 - branches/gnome-2-24/camel/providers/imap
- Date: Fri, 5 Dec 2008 06:24:36 +0000 (UTC)
Author: sragavan
Date: Fri Dec 5 06:24:36 2008
New Revision: 9802
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=9802&view=rev
Log:
2008-12-05 Srinivasa Ragavan <sragavan novell com>
** Fix for bug #558883
* camel/providers/imap/camel-imap-summary.c: Don't do DB sort from
IMAP.
Modified:
branches/gnome-2-24/camel/providers/imap/ChangeLog
branches/gnome-2-24/camel/providers/imap/camel-imap-summary.c
Modified: branches/gnome-2-24/camel/providers/imap/camel-imap-summary.c
==============================================================================
--- branches/gnome-2-24/camel/providers/imap/camel-imap-summary.c (original)
+++ branches/gnome-2-24/camel/providers/imap/camel-imap-summary.c Fri Dec 5 06:24:36 2008
@@ -163,6 +163,22 @@
return (a1 < a1) ? -1 : (a1 > a2) ? 1 : 0;
}
+static int
+uid_compare (const void *va, const void *vb)
+{
+ const char **sa = (const char **)va, **sb = (const char **)vb;
+ unsigned long a, b;
+
+ a = strtoul (*sa, NULL, 10);
+ b = strtoul (*sb, NULL, 10);
+ if (a < b)
+ return -1;
+ else if (a == b)
+ return 0;
+ else
+ return 1;
+}
+
/**
* camel_imap_summary_new:
* @folder: Parent folder.
@@ -181,7 +197,8 @@
camel_exception_init (&ex);
summary->folder = folder;
- if (folder) {
+ /* Don't do DB sort. Its pretty slow to load */
+ if (folder && 0) {
camel_db_set_collate (folder->parent_store->cdb_r, "uid", "imap_uid_sort", (CamelDBCollate)sort_uid_cmp);
summary->sort_by = "uid";
summary->collate = "imap_uid_sort";
@@ -199,6 +216,8 @@
camel_exception_clear (&ex);
}
+ g_ptr_array_sort (summary->uids, (GCompareFunc) uid_compare);
+
return summary;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]