about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ui-summary.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/ui-summary.c b/ui-summary.c
index 3d5eda8..05170cc 100644
--- a/ui-summary.c
+++ b/ui-summary.c
@@ -10,23 +10,28 @@
 
 static int header;
 
-static int cmp_tag_age(void *a, void *b)
+static int cmp_age(int age1, int age2)
 {
-	struct refinfo *r1 = *(struct refinfo **)a;
-	struct refinfo *r2 = *(struct refinfo **)b;
-
-	if (r1->tag->tagger_date != 0 && r2->tag->tagger_date != 0)
-		return r2->tag->tagger_date - r1->tag->tagger_date;
+	if (age1 != 0 && age2 != 0)
+		return age2 - age1;
 
-	if (r1->tag->tagger_date == 0 && r2->tag->tagger_date == 0)
+	if (age1 == 0 && age2 == 0)
 		return 0;
 
-	if (r1 == 0)
+	if (age1 == 0)
 		return +1;
 
 	return -1;
 }
 
+static int cmp_tag_age(const void *a, const void *b)
+{
+	struct refinfo *r1 = *(struct refinfo **)a;
+	struct refinfo *r2 = *(struct refinfo **)b;
+
+	return cmp_age(r1->tag->tagger_date, r2->tag->tagger_date);
+}
+
 static void cgit_print_branch(struct refinfo *ref)
 {
 	struct commit *commit;