summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2012-08-10 16:52:11 +0200
committerJonny Lamb <jonny.lamb@collabora.co.uk>2012-10-30 10:02:07 +0100
commit6b9494268d300f98a8bf9e72280608431aeb7f49 (patch)
treed8c9c4cc267cec6407b254da3a5eaa7a33947380
parent9acede9cb4e7d0c154032dfc63198782adde901f (diff)
downloadtelepathy-logger-6b9494268d300f98a8bf9e72280608431aeb7f49.tar.gz
log-store-xml: Filter out duplicate dates in get_dates
Fixes: https://bugs.freedesktop.org/53345
-rw-r--r--telepathy-logger/log-store-xml.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/telepathy-logger/log-store-xml.c b/telepathy-logger/log-store-xml.c
index bde4ca5..cf6a2f9 100644
--- a/telepathy-logger/log-store-xml.c
+++ b/telepathy-logger/log-store-xml.c
@@ -920,6 +920,7 @@ log_store_xml_get_dates (TplLogStore *store,
{
TplLogStoreXml *self = (TplLogStoreXml *) store;
GList *dates = NULL;
+ GList *l;
gchar *directory = NULL;
GDir *dir = NULL;
GString *pattern = NULL;
@@ -972,6 +973,18 @@ log_store_xml_get_dates (TplLogStore *store,
g_free (str);
}
+ /* Filter out duplicate dates in-place */
+ for (l = dates; g_list_next (l) != NULL; l = g_list_next (l))
+ {
+ GList *next = g_list_next (l);
+
+ if (g_date_compare ((GDate *) next->data, (GDate *) l->data) == 0)
+ {
+ g_date_free ((GDate *) next->data);
+ l = g_list_delete_link (l, next);
+ }
+ }
+
out:
g_free (directory);