[geary/geary-0.6] Stabilize sort of search email identifiers: Bug #733271
- From: Jim Nelson <jnelson src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary/geary-0.6] Stabilize sort of search email identifiers: Bug #733271
- Date: Wed, 20 Aug 2014 19:44:38 +0000 (UTC)
commit 70a9c9330b3d7b0aead941289b3ac1dae439fded
Author: Jim Nelson <jim yorba org>
Date: Fri Jul 25 13:36:09 2014 -0700
Stabilize sort of search email identifiers: Bug #733271
Without stabilization, it was possible for multiple emails in search
results with the same INTERNALDATE to be dropped due to the equality.
.../imap-db/imap-db-search-email-identifier.vala | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/src/engine/imap-db/imap-db-search-email-identifier.vala
b/src/engine/imap-db/imap-db-search-email-identifier.vala
index 53c9b5b..cea7f0b 100644
--- a/src/engine/imap-db/imap-db-search-email-identifier.vala
+++ b/src/engine/imap-db/imap-db-search-email-identifier.vala
@@ -53,11 +53,18 @@ private class Geary.ImapDB.SearchEmailIdentifier : ImapDB.EmailIdentifier,
}
public virtual int compare_to(SearchEmailIdentifier other) {
- if (date_received != null && other.date_received != null)
- return date_received.compare(other.date_received);
+ // if both have date received, compare on that, using stable sort if the same
+ if (date_received != null && other.date_received != null) {
+ int compare = date_received.compare(other.date_received);
+
+ return (compare != 0) ? compare : stable_sort_comparator(other);
+ }
+
+ // if neither have date received, fall back on stable sort
if (date_received == null && other.date_received == null)
return stable_sort_comparator(other);
+ // put identifiers with no date ahead of those with
return (date_received == null ? -1 : 1);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]